redis~鍵-數據操作命令

Redis 鍵命令用於管理 redis 的鍵。

刪除 : del key
序列化key : dump key
存在 : exists key
設置過期時間(秒) : expire key seconds
設置過期時間(毫秒) : pexpire key milliseconds
設置過期時間(時間戳) : expireat KEY TIME_IN_UNIX_TIMESTAMP
設置過期時間(毫秒時間戳) : pexpireat KEY TIME_IN_UNIX_TIMESTAMP
查詢給定模式的key : keys pattern
移動key到指定庫中 : move key db
移除key過期時間 : persist key
key剩餘過期時間(毫秒) : pttl key
key剩餘過期時間(秒) : ttl key
當前數據庫中隨機返回一個key : randomkey
修改key : rename key newkey
當newkey不存在時修改key爲newkey : renamenx key newkey
key對應value的數據的數據類型 : type key

Redis支持五種數據類型:string,hash,list,set,zset

String

String類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。
String類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。
注意:一個鍵最大能存儲512MB。

命令

設置key的值 : set key value
獲取值 : get key
獲取字符串數據中的子字符串 : (包括 start 和 end 在內):GETRANGE KEY_NAME start end

set key 123456getrange key 1 2
返回:"23"

設置新值返回舊值 : getset key
設置一對或者多對key-value : mset key1 value1 key2 value2…
設置一對或者多對key-value(key不存在時) : msetnx key1 value1 key2 value2…
獲取一個或者多個key的值 : mget key1 key2 …
設置key,value 和過期時間(秒) : setex key seconds value
設置key,value 和過期時間(毫秒) : psetex key seconds value
key不存在時設置key的值 : setnx key value
key對應value的長度 : strlen key
key對應value的值加1 : incr key
key對應value的值減1 : decr key
key對應value的值加指定值 : incrby key increment
key對應value的值減指定值 : decrby key increment
key對應value的值加指定值(浮點數) : incrbyfloat key increment
value後追加字符串 : append key value
指定的字符串覆蓋給定 key 所儲存的字符串值,覆蓋的位置從偏移量 offset 開始 : SETRANGE KEY_NAME OFFSET VALUE

SET key1 "Hello World" SETRANGE key1 6 "Redis"
GET key1"Hello Redis"

Hash(Map集合)

一個string類型的field和value的映射表
每個 hash 可以存儲 2的32次方減一個體鍵值對(40多億)

命令

哈希表中的字段賦值 : hset hkey filedkey value filedkey value
字段不存在時添加 : hsetnx hkey fieldkey1 value
哈希表中key對應的所有的value : hvals hkey
哈希表中的所有的key : hkeys hkey
獲取hash表的所有key-value : hgetall hkey
獲取hash表中字段的數量 : hlen hkey
刪除一個或者多個 : hdel hkey fidlekey fidlekey1
查看hash表中的key是否存在 : hexists hkey fieldkey
獲取hash表中的key的值 : hget hkey fieldkey
指定key加1 : hincrby hkey field increment
指定key加浮點數 : hincrbyfloat hkey field increment
獲取所有給定字段的值 : hmget hkey fieldkey
迭代哈希表中的鍵值對 : HSCAN key cursor [MATCH pattern] [COUNT count]

List(列表)

每個列表可以存儲 2的32次方減一個數據(40多億)

命令

插入一個/多個到列表頭中 :lpush key value1 value2
列表長度 : llen key
在列表指定元素前/後插入數據 : linsert key before|after pivot value
爲已經存在的列添加值(頭部) : rpushx key value
列表中添加一個/多個值 : rpush key value1 value2
通過key+索引獲取列中的數據 : lindex key index
通過key+索引範圍獲取列表中的數據 : lrange key start end
通過key+索引修改列表中的值 : lset key index value
根據count的值移除列表元素 : lrem key count value

COUNT 的值可以是以下幾種:
	count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數量爲 COUNT 。
	count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數量爲 COUNT 的絕對值。
	count = 0 : 移除表中所有與 VALUE 相等的值。

移除並獲取第一個數據 : lpop key
移除列表最後一個數據 : rpop key
移除處在指定區域的數據 : ltrim key start stop

Set(無序集合)

集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。
每個集合可以存儲 2的32次方減一個數據(40多億)

命令

集合中添加成員 : sadd key value1 value2
集合成員數 : scard key
集合中所有成員 : smembers key
迭代集合中的元素** : SSCAN key cursor [MATCH pattern] [COUNT count]

cursor - 遊標
pattern - 匹配的模式
count - 指定從數據集裏返回多少元素,默認值爲 10

差集 : sdiff key1 key2
差集存儲在指定的集合中 : sdiffstore destination_key key1 key2
交集 : sinter key1 key2
交集存儲在指定的集合中 : sinterstore destination_key key1 key2
並集 : sunion key1 key2
並集存儲在指定的集合中 : sunionstore destination_key key1 key2
數據是否在集合中 :sismember key member
集合中指定數據移動得到另外一個集合 : smove source_key destination member
移除一個隨機元素 : spop key
返回集合中一個或者多個隨機數 : srandmember key [count]
移除集合中一個或者多個成員 : srem key member [member2]

zset(sorted set:有序集合)

zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。不同的是每個元素都會關聯一個double類型的分數,通過分數來爲集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重複。
集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 2的32次方減一(4294967295, 每個集合可存儲40多億個成員)。

命令

集合中添加成員 : zadd key [NX|XX] [CH] [INCR] score member [score member]

XX: 僅僅更新存在的成員,不添加新成員。
NX: 不更新存在的成員。只添加新成員。
CH: 修改返回值爲發生變化的成員總數,原始是返回新添加成員的總數 (CH 是 _changed_ 的意思)。更改的元素是
新添加的成員,已經存在的成員更新分數。 所以在命令中指定的成員有相同的分數將不被計算在內。注:在通常情況下,ZADD返回值只計算新添加成員的數量。
INCR: 當ZADD指定這個選項時,成員的操作就等同ZINCRBY命令,對成員的分數進行遞增操作。```

獲取成員數 : zcard key
迭代有序集合中的元素 : ZSCAN key cursor
有序集合成員的分數值 : zscore key member
指定score區間內的成員數 : zcount key min max
指定score區間內的成員數 : zcount key min max
指定區域的成員數 : ZLEXCOUNT KEY MIN MAX

ZADD myzset 0 a 0 b 0 c 0 d 0 e
ZADD myzset 0 f 0 g 
ZLEXCOUNT myzset - +
(integer) 7 
ZLEXCOUNT myzset [b [f
(integer) 5

有序集合中對指定成員的分數添加增量 : zincrby key increment member
並集並指定存儲 : ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

ZADD zset1 1 "one" 2 "two" 
ZADD zset2 1 "one" 2 "two" "three" 
ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3 
(integer) 3 
ZRANGE out 0 -1 WITHSCORES 
1) "one" 
2) "5" 
3) "three" 
4) "9" 
5) "two" 
6) "10"

指定集合的交集並指定存儲 : ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
有序集中,指定區間內的成員 : ZRANGE key start stop [WITHSCORES]
字典區間返回有序集合的成員 : ZRANGEBYLEX key min max [LIMIT offset count]
有序集合中指定分數區間的成員列表。有序集成員按分數值遞增(從小到大)次序排列 : ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
指定成員的排名 : ZRANK key member
移除有序集中的一個或多個成員,不存在的成員將被忽略 : ZREM key member [member …]
移除有序集合中給定的字典區間的所有成員 : ZREMRANGEBYLEX key min max
移除有序集中,指定排名(rank)區間內的所有成員 : ZREMRANGEBYRANK key start stop
移除有序集中,指定分數(score)區間內的所有成員 : ZREMRANGEBYSCORE key min max
有序集中,指定區間內的成員 : ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定分數區間內的所有的成員。有序集成員按分數值遞減(從大到小)的次序排列 : ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
有序集中成員的排名。其中有序集成員按分數值遞減(從大到小)排序 : ZREVRANK key member

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章