標籤:分數 key 增加 浮點數 索引值 http 個數 pop persist
一、通用命令
1、keys 遍曆出所有的key
一般不在生產環境使用
2、dbsize key的總數
3、exists key
4、del key 刪除指定key-value
5、expire key secods 設定多少秒到期
ttl 還剩多少秒到期
persist 取消到期時間
6、type 返回key的類型
二、單線程
一個次只能執行一個命令
拒絕長慢命令(keys等)
為什麼單線程還這麼快
1、純記憶體(主要)
2、非阻塞IO
3、避免線程切換和競態消耗
三、資料類型
1、字串
類型:可以存字串、整型、二進位、json等
大小:可以存512M
情境:緩衝、計數器
命令:
1.1、get、set、del
1.2、set k v 不管k是否存在,都設定
setnx k v k不存在才設定
set k v xx k存在才設定
1.3、mset 大量設定
mget 批量擷取
1.5
getset key newvalue 設定新的key並返回舊value
append key value 將value追加到舊的value
strlen key 返回字串的長度(注意中文)
1.6
incrbyfloat 增加浮點數
getrange 擷取字串制定下標所有的值
setrange 設定指定下標所對應的值
1.7、適合做計數器,單進程無競爭
incr 自增1,如果key不存在為1
decr 自減1,如果key不存在為-1
incrby 自增k,如果key不存在為k
decrby 自減key,如果key不存在為-k
使用情境:緩衝應用
2、雜湊
一個鍵對應多個索引值的結構,可以理解為小redis
雜湊的API操作都是以h開頭
2.1、hset、hget、hdel
2.2
hexists key是否存在field
hlen key中field的總數
2.3
hmget 批量擷取
hmser 大量設定
2.4
hgetall
2.5、hsetnx、hincrby、hincrbyfloat
使用情境
統計每個使用者個人首頁的訪問量
hincrby user:1:info pageview count
緩衝儲存視頻基本資料
編程對比:
第一種:將整體資料序列化存進字串
第二種:將資料分別存進字串
第三種:將資料存進雜湊
4、列表
有序、可重複、左右兩邊可以插入彈出
列表的API都以L開頭
4.1、增
rpush 從右邊插入
lpush 從左邊插入
linsert key before|after value newvalue在指定的值前後插入資料
4.2、刪
lpop 從左彈出
rpop 從右彈
lrem key count value 根據count值,從列表中刪除所有與balue相等的值
4.3、查
lrange
lindex
llen
4.4、改
lset
4.5、 查漏補缺
blpop
brpop
4.6、使用情境
微博時間軸
4.7、TIPS
1、棧
2、隊列
3、有固定數量的列表
5、集合
集合內不能重複、無序、支援集合間操作
5.1、集合內
使用情境
可以用在點贊、抽獎中
5.2、集合間
使用情境:
共同關注、共同粉絲
6、有序集合
特點:
API
6.1、zadd 添加元素
6.2、zrem 刪除元素
6.3、zscore 擷取分數
6.4、zincrby 增加或減少分數
6.5、zcard 返回元素總個數
執行個體:
6.6、zrange 返回指定索引範圍內升序元素
6.7、zrangebyscore 返回制定分數範圍的升序元素
6.8、zermrangebyrank
6.9、zremrangbyscore 刪除指定分數的升序元素
使用情境:熱門排行榜
Redis資料類型的常用API以及使用情境