天天看點

redis基本資料類型及指令

一.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數目

繼續閱讀