型別
string
key 1024 位元組
val 512 兆
命令:set k v
getset k v 先獲取再設定值
del k
incr k 不存在k 會先建立k 再預設0遞增1為 1
decr k 不存在k 會先建立k 再預設0遞減1為 -1
incrby k v 在k的v基礎上增加v
decrby k v 在k的v基礎上減少v
hash
每個hash可以儲存 4294967295 個鍵值對
命令 hset key k v
hmset key k v v ... 設定多個屬性值
hmget key k k 獲取多個屬性值
hgetall key 全部獲取到
hdel key k v 刪除單個屬性值
del key 可以刪除整個集合
hincrby key k v 給v在v基礎遞增v
hexists key k 檢測是否存在屬性值 1/0
hlen key 長度
hkeys key 返回key以下所有的 k
hvals key 返回key以下所有的 v
list
命令 lpush key v v v ... 從左新增
lpushx key v 從左頭部插入乙個元素 如果key不存在則插入失敗(類似插隊)
lpop key 從左彈出
rpush key v v v ... 從右新增
rpushx key v 從右頭部插入乙個元素 如果key不存在則插入失敗(類似插隊)
rpop key 從右彈出
lrange key start(0) end (-1最後乙個|-2倒數第二個...) 檢視列表範圍
llen key 檢視元素個數
lrem key count v 依次移除 count 個 v
lrem key -count v 依次移除 count 個 v
lrem key 0 v 依次移除 所有的 v
lset key count v 第count(角標)個位置插入v (插隊)
linsert key before vv v 依次且只在的第乙個vv之前插入v (插隊)
linsert key after vv v 依次且只在的第乙個vv之後插入v (插隊)
rpoplpush key1 key2 依次將 key1 右邊的第乙個彈出 然後將彈出的元素插入到 key2 的左邊
tips:由於業務場景中在出現業務高峰的時候運用佇列處理時 彈出的元素沒有處理成功 這樣就造成了彈出元素的業務丟失 為此為了解決該類問題 可以用 rpoplpush 來解決這個問題(舉例:lista 為主業務佇列, listb 為副業務佇列 當lista被消費者彈出乙個元素時 隨即將元素新增到listb佇列 等待業務處理完成時 即可將listb的元素刪除 相當於做了乙個備份的操作)
set
set可包含的最大元素數量是 4294967295
可以看做沒有排序的集合 和 list 一樣(set中不允許出現重複的元素 如果多次出現 只會保留乙份內容)
命令 sadd key v v v ... 新增元素
srem key v v v ... 刪除元素
smembers key 檢視元素
sismember key v 檢視 v 是否存在 (1/0)
sdiff key1 key2 返回 key1 與 key2 的差集
sinter key1 key2 返回 key1 與 key2 的交集
sunion key1 key2 返回 key1 與 key2 的並集(重複的會去掉)
scard key 返回 key 下的數量
srandmember key 返回 key 中隨機的乙個元素
sdiffstore key1 key2 key3 將 key2 與 key3 的差集儲存到 key1
sinterstore key1 key2 key3 將 key2 與 key3 的交集儲存到 key1
sunionstore key1 key2 key3 將 key2 與 key3 的並集儲存到 key1
sorted-set
sorted-set 與 set 之間的區別:都會有乙個分數與之關聯 redis正是通過這個分數為集合從小到大的排序 雖然值是唯一的 但是分數是可以重複的
命令 zadd key num v num v ... 給key鍵新增 num分數 到v(可以是多個 如果num重複 成功返回0 會修改為本次的num)
zscore key v 返回key下 v 的分數
zcard key 返回key下的長度
zrem key v v 刪除key下的v
zrange key 0 -1 返回key下第乙個到最後乙個的v
zrange key 0 -1 withscores 返回key下第乙個到最後乙個的v與v對應的分數
zrevrange key 0 -1 withscores 以分數從大到小返回key的v 與 v對應的分數
zremrangebyrank key start end 以分數從大到小 有序的 從 start 到 end 之間刪除
zremrangebyscore key startnum endnum 刪除key下分數 從 startnum 到 endnum 之間的 v
zrangebyscore key startnum endnum limit start end 以分數從大到小 返回startnum 到 endnum 分數區間 的第 start 到 end結束
zincrby key num v 給 key 的 v 在 v 的基礎上增加 num
zcount key startnum endnum 返回 key 下分數在 startnum 到 endnum 之間的個數
tips:主要的應用場景在於遊戲的排名、微博的熱點話題、遊戲的積分... ...
Redis相關命令
2 list相關操作 有序可重複 向list根據left方向以此新增資料 先進後出 lpush list1 1 2 3 4 5 6 獲取list中的全部資料 lrange list1 0 1 向list根據right方向以此新增資料 先進先出 rpush list2 1 2 3 4 5 6 彈出集合...
redis學習筆記二 redis的相關命令
expire key time 以秒為單位對於記憶體中不常用的資料塊叫做lru,會把lru資料塊移出記憶體。valatile lru 設定超時時間中,刪除最不常用的資料。allkeys lru 設定所以key中不常用的刪除。valatile random 設定超時時間中,隨機刪除key。allkey...
Redis相關學習
remote dictionary server redis 是乙個由salvatore sanfilippo寫的key value儲存系統。redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。它...