Redis數據類型的常用API以及使用場景
一、通用命令
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以及使用場景