redis鍵(key)
常用命令
命令 | 註釋 |
---|---|
keys * | 獲取所有的key |
select 0(庫角標) | 選擇第幾個庫 |
move key 0(庫角標) | 將當前的數據庫key移動到某個數據庫,目標庫有,則不能移動 |
flush 0(庫角標) | 清除指定庫 |
randomkey | 獲取隨機key |
type key | key的類型 |
set key value | 設置key和value |
get key | 獲取key的value |
mset key1 value1 key2 value2 | 批量設置key、value |
mget key1 key2 key3 | 批量獲取value |
del key | 刪除key |
exists key | 判斷是否存在key |
expire key second(秒) | 給key設置過期時間 |
pexpire key millisecond (毫秒) | 給key設置過期時間 |
persist key | 刪除過期時間,持久保存key |
String類型
簡介
String是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
String類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。
String類型是Redis最基本的數據類型,一個redis中字符串value最多可以是512M
存儲結構類似:key:value
常用命令 (java項目www.fhadmin.org)
命令 | 註釋 |
---|---|
set key value | 設置值 |
get key | 獲取值 |
getrange key start end | 獲取指定範圍的value |
getset key value | 設置新value,並返回舊value |
getbit key offset | 獲取字符串中某個位置的字符 |
mget key1 key2 | 獲取多個value |
setex key second(秒) value | 設置key、value,同時設置過期時間 |
setnx key value | key不存在時設置key |
setrange key offset value | 用新value替換老value部分字符,從offset開始替換 |
strlen key | 獲取value長度 |
mset key1 value1 key2 value2 | 批量設置key、value |
msetnx key1 value1 key2 value2 | 批量設置,當且僅當所有要設置的key都不存在時 |
psetex key milliseconds(毫秒) value | 設置過期時間,單位毫秒 |
incr key | 如果value是數字,使用這個語法使數字自增1 |
incrby key increment | 給value增加指定的值increment |
decr key | 給value減去1 |
decrby key decrement | 給value減去指定的值decrement |
append key value | 將value追加到key原來的value尾部 |
List類型
簡介
它是一個字符串鏈表,left、right都可以插入添加;
如果鍵不存在,創建新的鏈表; 如果鍵已存在,新增內容; 如果值全移除,對應的鍵也就消失了。
鏈表的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡了。
key
是列表的名稱,value
是列表。
存儲結構類似:key:[value1, value2, value3, value4]
常用命令
命令 | 註釋 |
---|---|
blpop key timeout | 在timeout時間內,獲取並移除列表的第一個元素 |
brpop key1 timeout | 在timeout時間內,獲取並移除列表的最後一個元素 |
brpoplpush source destination timeout | 在timeout時間內,從source列表中取出一個值,放到destination列表中 |
lindex key index | 獲取列表index位置的值 |
linsert key BEFORE | AFTER value1 value2 |
llen key | 返回列表的長度 |
lpop key | 獲取並移除列表的第一個元素 |
lpush key value value2 | 將一個或多個value插入到列表的頭部 |
lpushx key value | 當key已經存在的時候,向列表的頭部插入value |
lrange key start end | 獲取列表部分數據,從start到end範圍 |
lrem key count value | count>0,從列表的頭部開始算起,移除count個value相同的數據;count<0,從列表的尾部開始算起,移除count絕對值個value相同的數據;count=0,全部移除value相同的數據 |
lset key index value | 在列表index位置設置value |
ltrim key start end | 保留start到end內的數據,其餘的全部刪除 |
rpop key | 獲取並移除列表最後一個元素 |
rpoplpush source destination | 移除source列表最後一個元素,並把該元素添加到destination列表的頭部 |
RPUSH key value1 value2 | 將一個或多個value添加到列表的尾部 |
rpushx key value | 爲已經存在的列表添加值 |
Hash類型
簡介
hash 是一個 string 類型的 field(字段) 和 value(值) 的映射表,hash 特別適合用於存儲對象。
存儲結構類似:key:{field1:value1, field2:value2, field3:value3}
如:HMSET keyName
name
"redis tutorial" description
"redis basic commands for caching"
常用命令
命令 | 註釋 |
---|---|
hdel key field1 field2 | 刪除key中一個或多個field及value |
hexists key field | 查看哈希表key中,指定的field字段是否存在 |
hget key field | 在key中查找filed字段的value值 |
hgetall key | 獲取在哈希表中指定 key 的所有字段和值 |
hincrby key field increment | 爲哈希表 key 中的指定字段的整數值加上增量increment |
hincrbyfloat key field increment | 爲哈希表 key 中的指定字段的浮點數值加上增量 increment 。 |
hkeys key | 獲取所有哈希表中的字段 |
hlen key | 獲取哈希表中字段的數量 |
hmget key field1 field2 | 獲取所有指定字段的值 |
hmset key field1 value1 field2 value2 | 同時將多個 field-value對設置到哈希表 key 中 |
hset key field value | 將哈希表 key 中的字段 field 的值設爲 value 。 |
hsetnx key field value | 只有在字段 field 不存在時,設置哈希表字段的值。 |
hvals key | 獲取哈希表中所有值。 |
hscan key cursor [MATCH pattern] [COUNT count] | 迭代哈希表中的鍵值對。 |
set類型
簡介
Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重複的數據。
Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。
存儲結構類似:key:("value1", "value2", "value3")
常用命令
命令 | 註釋 |
---|---|
sadd key value1 value2 | 向集合添加一個或多個成員 |
scard key | 獲取集合的成員數大小 |
sdiff key1 key2 key3 | 返回第一個集合與其他集合之間的差異。 |
sdiffstore destination key1 key2 | 返回給定所有集合的差集並存儲在 destination 新key中 |
sinter key1 key2 | 返回給定所有集合的交集 |
sinterstore destination key1 key2 | 返回給定所有集合的交集並存儲在 destination 新key中 |
sismember key value | 判斷key的集合中是否存在value |
smembers key | 返回key集合中所有的value |
smove source destination value | 將 value 元素從 source的key 集合移動到 destination的key 集合中 |
spop key | 隨機獲取並移除key中的一個value |
srandmember key count | 隨機返回集合中count個value |
srem key value1 value2 | 移除集合中一個或多個value |
sunion key1 key2 | 返回所有給定集合的並集 |
sunionstore destination key1 key2 | 所有給定集合的並集存儲在 destination key集合中 |
SSCAN key cursor [MATCH pattern] [COUNT count] | 迭代集合中的元素 |
Zset(sorted set)類型
簡介
Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重複。
集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
存儲結構類似:key:{score1:value1, score2:value2, score3:value3, }
常用命令
命令 | 註釋 |
---|---|
zadd key score1 value1 score2 value2 | 向有序集合添加一個或多個成員,或者更新已存在成員的分數 |
zcard key | 獲取有序集合的成員數 |
zcount key min max | 計算在有序集合中指定區間分數的成員數 |
zincrby key increment value | 有序集合中對指定成員的分數加上增量 increment |
zinterstore destination numkeys key [key ...] | 計算給定的一個或多個有序集的交集並將結果集存儲在新的有序集合 key 中 |
zlexcount key min max | 在有序集合中計算指定字典區間內成員數量 |
zrange key start stop [WITHSCORES] | 通過索引區間返回有序集合指定區間內的成員 |
zrangebylex key min max [LIMIT offset count] | 通過字典區間返回有序集合的成員 |
zrangebyscore key min max [WITHSCORES] [LIMIT] | 通過分數返回有序集合指定區間內的成員 |
zrank key value | 返回有序集合中指定成員的索引 |
zrem key value [value ...] | 移除有序集合中的一個或多個成員 |
zremrangebylex key min max | 移除有序集合中給定的字典區間的所有成員 |
zremrangebyrank key start end | 移除有序集合中給定的排名區間的所有成員 |
zremrangebyscore key min max | 移除有序集合中給定的分數區間的所有成員 |
zrevrange key start stop [WITHSCORES] | 返回有序集中指定區間內的成員,通過索引,分數從高到低 |
zrevrangebyscore key max min [WITHSCORES] | 返回有序集中指定分數區間內的成員,分數從高到低排序 |
zrevrank key value | 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序 |
zscore key value | 返回有序集中,成員的分數值 |
zunionstore destination numkeys key [key ...] | 計算給定的一個或多個有序集的並集,並存儲在新的 key 中 |
zscan key cursor [MATCH pattern] [COUNT count] | 迭代有序集合中的元素(包括元素成員和元素分值) |