數(shù)據(jù)庫命令
查看鍵的類型
TYPE key
注: 返回鍵的類型
HyperLogLog類型返回string,HyperLogLog底層實現(xiàn)是二進(jìn)制值,字符串類型可以儲存二進(jìn)制值,HyperLogLog直接只用字符串類型存儲
獲取鍵命令
1.隨機獲取某個鍵
RANDOMKEY
注:在當(dāng)前數(shù)據(jù)庫中隨機返回一個鍵,返回的鍵不會被刪除
2.返回數(shù)據(jù)庫中與給定模式匹配的鍵
KEYS * 數(shù)據(jù)庫中所有鍵
KEYS h?llo 匹配hello hallo hillo等
KEYS h*llo 匹配hello hllo hiillo等
KEYS h[ae]llo 匹配hello hallo
3.漸進(jìn)遍歷整個數(shù)據(jù)庫與給定模式的鍵
注:SCAN 命令以漸進(jìn)的方式遍歷整個數(shù)據(jù)庫
SCAN cursor [MATCH pattern][COUNT number]
注: cursor 參數(shù)是遍歷使用的游標(biāo)第一次遍歷是零,每次遍歷會返回游標(biāo)下次遍歷使用
MATCH pattern 選項用戶指定匹配模式
COUNT number 選項用于指定一次遍歷返回都少鍵
刪除鍵
DEL key [key...]
刪除給定任意多個鍵,不存在的鍵會被忽略
檢查鍵是否存在
EXISTS key
注:檢查鍵是否存在,存在返回1,不存在返回0
修改鍵名
RENAME key newkey
注:將key改為newkey 如果已存在覆蓋,返回ok
RENAMENX key newkey
注:newkey不存在將key改為newkey 如果已存在不做操作
SORT命令
SORT key
注:將鍵包含的值解釋為浮點數(shù),然后對這些值進(jìn)行排序
SORT key ASC // 升序 默認(rèn)參數(shù)可省略
SORT key DESC // 降序
SORT key ALPHA // ALPHA 參數(shù)基于字典序?qū)ξ淖诌M(jìn)行排序
獲取數(shù)據(jù)庫的大小
DBSIZE
注:查找當(dāng)前數(shù)據(jù)庫的key的數(shù)量
切換數(shù)據(jù)庫
SELECT num
注:redis默認(rèn)創(chuàng)建0-15號數(shù)據(jù)庫,默認(rèn)使用0號數(shù)據(jù)庫,可以使用命令切換數(shù)據(jù)庫
在數(shù)據(jù)庫鍵移動鍵
MOVE key target-db
注:將key移動到目標(biāo)數(shù)據(jù)庫中
鍵設(shè)置過期時間
expire key second
注:為給定key設(shè)置過期時間,單位為秒
移除鍵的過期時間
persist key
注:移除key的過期時間,key將持久保存
查看鍵剩余生存時間
ttl key
注:以秒為單位,返回給定key的剩余生存時間(TTL , time to live)
String數(shù)據(jù)類型
- 結(jié)構(gòu):Key-Value
- Value:可以是字符串、數(shù)字,也可以是二進(jìn)制數(shù)組
- 限制:Value最大值為512MB
1.get key
注:獲取指定key的值
2.set key value
注:設(shè)置指定key的值
3.incr key
注:將key中存儲的數(shù)字值增一
4.incrby key increment
注:將key所存儲的數(shù)字值加上給定的增量
5.decr key
注:將key中存儲的數(shù)字值減一
6.decrby key decrement
注:將key所存儲的數(shù)字值減去給定的減量
7.setnx key value
注:只有當(dāng)key不存在時才設(shè)置key的值
8.set key value nx
注:與⑦相同,只有當(dāng)key不存在時才設(shè)置key的值
9.setex key second value
注:設(shè)置指定key的值,同時設(shè)置該key的過期時間,單位為秒
10.set key second value ex
注:與⑨相同,設(shè)置指定key的值,同時設(shè)置該key的過期時間,單位為秒
11.set key value xx
注:只有key存在時才設(shè)置key的值
12.mget key1 [key2...]
注:獲取所有(一個或多個)指定key的值
13.mset key1 value1 [key2 value2...]
注:同時設(shè)置一個或多個key-value對
14.getset key value
注:將給定key的值設(shè)置為value,并返回key的舊值
15.append key value
注:將value追加到舊值的末尾
16.strlen key
注:返回key所存儲的字符串值的長度
- 當(dāng)key不存在時,返回0
- 一個中文占2個字節(jié)
- 時間復(fù)雜度為O(1),strlen在redis內(nèi)部不需要查詢整個字符串來得到長度
17.incrbyfloat key increment
注:將key所存儲的值加上給定的浮點值
18.getrange key start end
注:返回key中字符串區(qū)間為[start,end]的子串,索引從0開始
19.setrange key offset value
注:用value擦?xí)采w指定key所存儲的字符串值,從偏移量offset開始,索引從0開始
- key = content的時候,執(zhí)行setrange key 1 haha 之后,key=chahant
Hash數(shù)據(jù)類型
1.hget key field
注:獲取存儲在哈希表中指定field的值
2.hset key field value
注:將哈希表中指定field的值設(shè)置為value
3.hdel key field1 [field2...]
注:刪除哈希表中一個或多個field
4.hexists key field
注:判斷哈希表中,指定field是否存在
5.hlen key
注:獲取哈希表中字段的數(shù)量
6.hmget key field1 [field2...]
注:獲取哈希表中所有給定field的值
7.hmset key field1 value1 [field2 value2...]
注:同時將一個或多個field-value對設(shè)置到哈希表中
8.hincrby key fiel increment
注:為哈希表中指定field的值加上一個整型增量
9.hgetall key
- 含義:獲取哈希表中所有字段和值
- 時間復(fù)雜度為O(n),不建議使用
10.hkeys key
注:獲取哈希表中的所有字段
- 時間復(fù)雜度為O(n),不建議使用
11.hvals key
注:獲取哈希表中的所有值
- 時間復(fù)雜度為O(n),不建議使用
12.hsetnx key field value
注:只有當(dāng)哈希表中field不存在時,才設(shè)置該field的值
13.hincrbyfloat key field increment
注:為哈希表中指定field的值加上一個浮點數(shù)增量
List數(shù)據(jù)類型
- 列表:有序、可以有重復(fù)元素
1.rpush key value1 [value2...]
注:在列表后側(cè)添加一個或多個值
2.lpush key value1 [value2...]
注:在列表左側(cè)添加一個或多個值
3.linsert key before/after value newValue
注:在列表指定的value前/后插入newValue,時間復(fù)雜度為O(n)
4.lpop key
注:從列表左側(cè)彈出一個值
5.rpop key
注:從列表右側(cè)彈出一個值
6.lrem key count value
注:根據(jù)count值,從列表中刪除值為value的項,時間復(fù)雜度為O(n)
- count > 0 時,從左往右遍歷,刪除最多count個與value相等的值
- count < 0 時,從右往左遍歷,刪除最多Math.abs(count)個與value相等的值
- count = 0 時,刪除所有與value相等的值
7.ltrim key start end
注:對一個列表進(jìn)行修剪,只保留指定區(qū)間內(nèi)的元素,不在區(qū)間內(nèi)的元素都將被刪除,時間復(fù)雜度為O(n)
8.lrange key start end
注:獲取列表指定索引范圍的所有元素,時間復(fù)雜度為O(n)
9.lindex key index
注:獲取列表指定索引的元素,時間復(fù)雜度為O(n)
10.llen key
注:獲取列表長度,時間復(fù)雜度為O(1)
11.lset key index newValue
注:設(shè)置列表指定索引的值為newValue,時間復(fù)雜度為O(n)
- 注意:
- 必須存在這個值才能設(shè)置成功,否則會報錯
12.blpop key timeout
注:移除并獲取列表左邊第一個元素,如果列表沒有元素會阻塞直到等待超時或可彈出元素為止
- timeout單位為秒,timeout=0時不阻塞
13.brpop key timeout
注:移除并獲取列表右邊第一個元素,如果列表沒有元素會阻塞直到等待超時或可彈出元素為止
- timeout單位為秒,timeout=0時不阻塞
Set數(shù)據(jù)類型
- 集合:無序、不能包含重復(fù)元素
1.sadd key memebr1 [member2...]
注:向集合中添加一個或多個成員
2.srem key member1 [member2...]
注:從集合中刪除一個或多個成員
3.scard key
注:獲取集合中的元素個數(shù)
4.sismember key member
注:判斷member元素是不是集合的成員
5.srandmember key count
注:隨機從集合中取出count個成員
6.spop key
注:隨機移除并返回集合中的一個成員
7.smembers key
注:獲取集合中的所有成員
- 時間復(fù)雜度為O(n),不建議使用,類似的操作可以使用SSCAN
8.sdiff key1 [key2...]
注:返回給定所有集合的差集
9.sdiffstore destKey key1 [key2...]
注:計算給定所有集合的差集,并存入destKey
10.sinter key1 [key2...]
注:返回給定所有集合的交集
11.sinterstore destKey key1 [key2...]
注:計算給定所有集合的交集,并存入destKey
12.sunion key1 [key2...]
注:返回給定所有集合的并集
13.sunionstore destKey key1 [key2...]
注:計算給定所有集合的并集,并存入destKey
ZSet數(shù)據(jù)類型
- 有序集合:有序、不能包含重復(fù)元素
- 每個節(jié)點包含:score和value兩個屬性,根據(jù)score進(jìn)行排序
1.zadd key score1 member1 [score2 member2...]
注:向有序集合添加一個或多個成員,或者更新已存在成員的分?jǐn)?shù)
2.zrem key member1 [member2...]
注:從有序集合中刪除一個或多個成員
3.zscore key member
注:獲取有序集合中成員的分?jǐn)?shù)
4.zincrby key increment member
注:對有序集合中指定成員的分?jǐn)?shù)加上增量increment
5.zcard key
注:返回有序集合中元素的總個數(shù)
6.zrange key start end [withscores]
注:通過索引返回有序集合中指定區(qū)間的成員信息
- withscores 參數(shù),加上代表一并將score數(shù)據(jù)返回
7.zrangebyscore key min max [withscores][limit]
注:通過score返回有序集合中指定分?jǐn)?shù)區(qū)間的成員信息
- withscores 參數(shù),加上代表一并將score數(shù)據(jù)返回
- limit參數(shù),加上代表限制返回多少條數(shù)據(jù)
8.zscore key min max
注:返回有序集合中指定分?jǐn)?shù)范圍內(nèi)的元素個數(shù)
9.zremrangebyscore key min max
注:刪除有序集合中指定分?jǐn)?shù)區(qū)間的所有成員
10.zremrangebyrank key start end
注:刪除有序集合中給定索引區(qū)間的所有成員