redis是什么?
redis(remote dictionary server),是一個典型以KV鍵值對 nosql數(shù)據(jù)庫,是使用C語言編寫的。
redis安裝
下載地址http://redis.io/download
安裝步驟:
1 首先需要安裝gcc,把下載好的redis-3.0.0-rc2.tar.gz 放到linux /usr/local文件夾下
2 進(jìn)行解壓
tar -zxvf redis-3.0.0-rc2.tar.gz
3 進(jìn)入到redis-3.0.0目錄下,進(jìn)行編譯
make
4 進(jìn)入到src下進(jìn)行安裝 make install 驗證(ll查看src下的目錄,有redis-server 、redis-cil即可)
make install
5 建立倆個文件夾存放redis命令和配置文件
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/bin
6 把redis-3.0.0下的redis.conf 移動到/usr/local/redis/etc下,
cp redis.conf /usr/local/redis/etc/
7 把redis-3.0.0/src里的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-server
文件移動到bin下,命令:
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-
dump redis-cli redis-server /usr/local/redis/bin
8 啟動時并指定配置文件:./redis-server /usr/local/redis/etc/redis.conf(注意要使用后臺啟動,所以修改redis.conf里的 daemonize 改為yes)
./redis-server /usr/local/redis/etc/redis.conf
9 驗證啟動是否成功:
ps -ef | grep redis 查看是否有redis服務(wù) 或者 查看端口:netstat -tunpl | grep 6379
ps -ef | grep redis
netstat -tunpl | grep 6379
進(jìn)入redis客戶端 ./redis-cli 退出客戶端quit
退出redis服務(wù):
(1)pkill redis-server 、
(2)kill 進(jìn)程號、
(3)/usr/local/redis/bin/redis-cli shutdown
redis配置文件
1、bind ip
2、requirepass 密碼
3、port
4、兩種持久化技術(shù)--快照 、aof
5、slaveof slaveof 192.168.13.4 6379
masterauth 密碼
redis有五種基本數(shù)據(jù)類型
string 字符串
hash 對象
list 列表
set 集合
zset 有序集合
字符串的命令:
set key value # 保存一個鍵值對
get key # 通過key來去對應(yīng)的值

mset key1 v1 k2 v2... # 一次保存多個鍵值對
mget k1 k2 k3 # 通過key來去對應(yīng)的值

setex key second value # 保存一個鍵值對,同時規(guī)定它的失效時間(second)

incr key # 對key對應(yīng)值 加一,注意,只對數(shù)據(jù)字符串有效
incrby key value # 對key對應(yīng)值 加value
decr key # 對key對應(yīng)值 減一,注意,只對數(shù)據(jù)字符串有效
decrby key value # 對key對應(yīng)值 減value

strlen key # 求key對應(yīng)值的長度

append key value # 對key對應(yīng)的值進(jìn)行新的拼接

setnx key vaule # 如果存在key,則無效,如果不存在,則保存該鍵值對

hash命令:主要用來存儲對象的
u1 = User(1, "beibei", 18, "zhengzhou")
u2 = User(2, "xzh", 20, "zhengzhou")
hset key field value # 存儲key對應(yīng)屬性field的值
hget key field # 獲取key對應(yīng)屬性field的值
hmset key f1 v1 f2 v2...# 存儲key對應(yīng)多個屬性field的值
hmget key f1 f2... # 獲取key對應(yīng)多個屬性field的值


hgetall key # 獲取key對象所有屬性和對應(yīng)的值
hkeys key # 獲取key對象的所有屬性的名稱
hvals key # 獲取key對象的所有屬性的值
hlen key # 獲取key的所有屬性個數(shù)
hstrlen key field # 獲取key對應(yīng)的屬性的值的長度

hexists key field # 判斷某個對象是否存在該屬性
hsetnx key field value # 判斷對象的屬性是否存在,存在則不操作,不存在,則保存


hincrby key field value # 對對象的屬性(必須是數(shù)字字符串)進(jìn)行加法運(yùn)算

key操作
keys * # 查詢當(dāng)前數(shù)據(jù)庫中所有key的個數(shù)

exists key # 判斷某個key是否存在在當(dāng)前數(shù)據(jù)庫
del key # 刪除對應(yīng)的key
type key # 判斷key的類型

expire key second value # 為一個存在的key設(shè)置一個失效時間
ttl key # 查看key的失效時間 -2表示不存在 -1 永久存在 正數(shù)表示存活的秒數(shù)

move key db # 移動key到db數(shù)據(jù)庫中
select index # 切換數(shù)據(jù)庫

info [xxxx] # 查看當(dāng)前數(shù)據(jù)庫的狀態(tài)

dbsize # 返回當(dāng)前數(shù)據(jù)庫的key的個數(shù)

flushdb # 刪除當(dāng)前數(shù)據(jù)庫的所有數(shù)據(jù)
flushall # 刪除所有數(shù)據(jù)庫的所有數(shù)據(jù)
persist key # 讓key永久保存

list命令
lpush key v1 v2... # 從左側(cè)將值放入list中
rpush key v1 v2... # 從右側(cè)將值放入list中
lrange key start end # 循環(huán)顯示list
linsert key b|a piovt v # 將值插入到對應(yīng)的位置


lpop key # 從左側(cè)刪除第一個元素
rpop key # 從右側(cè)刪除最后一個元素

llen key # 獲取list的長度
ltrim key start stop # 切割列表
lindex key index # 獲取索引位對應(yīng)的元素
