一.key相關指令
redis本質上是key-value資料庫.是以key操作适用于redis的任何資料類型緩存.
1.exists key
判斷是否存在key,存在傳回1,不存在傳回0
2.del key1 key2...keyN
删除指定key,傳回删除key的數目;傳回0表示給定key不存在
3.type key
傳回給定key的value類型;傳回none表示不存在;String為字元類型,list為連結清單類型;set為無序集合類型;
4.keys pattern
傳回比對指定模式的所有key
example:
keys *
keys key*
5.expire key seconds
設定傳回key過期時間;機關為秒
6.ttl key
傳回key的剩餘過期時間,機關為秒數;-1表示未設定過期時間或未設定秒數
7.randomkey
随機傳回目前庫中的一個key
8.rename oldkey newkey
重命名key;如果oldkey不存在,傳回錯誤消息;如果newkey存在,則被覆寫;
9.renamenx oldkey newkey
如果newkey存在,傳回0,不會覆寫newkey值;失敗傳回錯誤消息
10.move key db-index
移動key到制定庫
二.String類型
string是二進制安全的,可以儲存圖檔視訊等;
相關指令
1.set key value
2.setnx key value
如果key存在不會覆寫
3.get key
4.getset key value
擷取key的值,不存在以value設定;如果key不存在,傳回nil
5.mget key1 key2 key3
一次擷取多個key的值
6.mset key1 value1 ... keyN valueN
一次設定多個key的值
7.msetnx key1 value1 ... keyN valueN
一次設定多個key的值,不覆寫已存在的key
8.incr key
對應key值+1
9.decr key
對應key值-1
10.incrby key integer
對應key值+integer
11.decrby key integer
對應key值-integer
三.list連結清單類型
list資料類型是指key對應的value是一個雙向連結清單類型.
1.lpush key string
向key對應的list頭部添加字元串元素
2.rpush key string
尾部添加元素
3.llen key
傳回key對應lists長度
4.lrange key start end
傳回指定區間内list的元素(start~end),下标從0開始,-1表示倒數最後一個元素;不會删除元素
5.ltrim key start end
截取指定區間内的元素,下标從0開始, 成功傳回ok,失敗傳回錯誤消息;會删除元素
6.lset key index value
設定指定下标的值,下标從0開始,如果下标不存在,傳回錯誤;
7.lrem key count value
從list的頭部(count整數)或尾部(count負數)删除一定數量(count絕對值)的比對value的元素
8.lpop key
從list頭部删除一個元素并傳回
9.rpop key
從list尾部删除一個元素并傳回
10.blpop key1...keyN timeout
從左到右掃描key1到key2,對第一個非空list進行lpop操作并傳回;如果所有list都為空或不存在,阻塞timeout秒,timeout為0表示一直阻塞.阻塞時,如果其他client對key1到key2的任意一個key進行push操作,阻塞解除并傳回;如果逾時發生,傳回nil
11.rlpop key1...keyN timeout
同brlpop,不同的是blpop是從頭部删除,lpop是尾部删除
*如果list中不存在元素,則這個key就會被删除掉.
*list适合做消息隊列.
四.set類型
set類型是一種無序集合.
1.sadd key member
增加元素
2.srem key member
删除元素
3.spop key
删除并傳回key中随機的一個元素
4.srandmember key
傳回key中随機的一個元素,但是不删除
5.smove srckey detkey member
将元素member從srckey集合移動到detkey集合,操作是原子性的.
6.scard key
傳回key的元素個數
7.sismember key value
判斷元素是否存在,存在1,不存在0
8.smembers key
傳回key中對應所有元素
*如果set中不存在元素,則這個key就會被删除掉
*set中元素如果相同,則會被覆寫;這是集合的特性
五.Sorted set類型(有序集合)
與set類型相似,都是string類型的集合,不同的是sorted set屬于有序集合.可以建構一個優先級的隊列
1.zadd key score member
添加元素member到集合,元素在集合中存在則更新對應的score
2.zrem key member
删除元素member
3.zincrby key incr member
增加對應元素的score,将其加incr值,并重新排序,傳回更新後的score
4.zrank key member
傳回指定元素在集合中的排名(下标),從小到大排序
5.zrevrank key member
同上,從大到小排序
6.zrange key start end
傳回指定區間的元素,按score從小到大排序
7.zrevrange key start end
8.zrangebyscore key min max
傳回集合中score值在給定範圍内的元素
9.zcount key min max
傳回集合中score值在給定範圍内的元素數量
10.zcard key
傳回元素數量
11.zremrangebyrank key min max
删除集合中排名在指定區間的元素
12.zremrangebyscore key min max
删除集合中score在指定區間的元素
*具體應用排行榜中按頂貼次數排序
僞代碼:
a.初始化
zadd toprank 0 art_id_1
zadd toprank 0 art_id_2
zadd toprank 0 art_id_3
b.頂貼操作,如将art_id為3的文章頂貼一下
zincrby toprank 1 art_id_3
c.按頂貼從大到小排序(前10)
zrange toprank 0 9
六.Hash類型
hash類型的每個key對應一個HashTable,适合存儲對象,如使用者資訊對象等;
1.hset key field value
設定key的field對應的value, 如果不存在設定,存在覆寫
2.hget key field
擷取值
3.hmset key field1 value1 ... fieldN valueN
設定多個值
4.hmget key field1 ... fieldN
取多個值
5.hincrby key field1 integer
對key對應的field1增加interger值
6.hexists key field
判斷key中是否存在field
7.hdel key field
删除key中對應的field字段
8.hlen key
傳回key中對應的fields數目