redis入門——數據類型介紹

一、下載

windows 下載

以3.2爲主版本
下載地址:https://github.com/MSOpenTech/redis/releases

linux下載

以4.0位主版本
下載地址:https://redis.io/download

二、數據類型

1.string類型

單條操作
增:set key value
查:get key
刪:del key
多條操作
增:mset key value [key1 value1]
查:mget key [key1]

單條指令與多條指令的區別:
發送,執行,返回都需要時間,多條指令可一次性發送和返回結果多條,所需時間少,效率更高。
在這裏插入圖片描述
其他命令
strlen key //獲取字符串長度
append key value //有則追加,無則新建
setnx key value //不存在就設置,存在就不設置
incr key //自增 1
incrby key num //給key的值增加num(int 類型),num 正數則爲加,num 爲負數 則爲減
incrbyfloat key num //給key的值增加num(float 類型)
decr key //自減 1
decrby key num //給key的值減num
setex key second value //設置key的值爲value存活時間爲second秒
psetex key millisecond value //設置key的值爲value存活時間爲millisecond毫秒
應用場景
1.一張表分成多張表時,用incrby,decrby保證多張表的id不重複
在這裏插入圖片描述
在這裏插入圖片描述
2.控制熱點信息的時效性
3.
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

2.hash類型

一個存儲空間保存多對鍵值對數據,如果filed數量較少,存儲結構優化爲類數組結構
底層實現hash表結構實現數據存儲
在這裏插入圖片描述
單條操作
增:hset key field value
查:hget key field
刪:hdel key field
在這裏插入圖片描述
多條操作
增:hmset key field value [field1 value2]
查:hmget key field [field1]
其他命令
hgetall key //獲取key的全部的值
hlen key //獲取key的值的數量
hexists key field //是否存在field
hkeys key //所有key的字段(field)
hvals key //所有key的值
hincrby key field num //給key的field的值增加num (num 爲int值)
hincrybyfloat key field num //給key的field的值增加num (num 爲float)
hsetnx key field value //存在不設置,不存在設置
在這裏插入圖片描述
應用場景
1.電商購物車
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
2.限量搶購
在這裏插入圖片描述

3.list類型

在這裏插入圖片描述
String存在對象講究整體性,以讀爲主
Hash存儲對象講究分散性,以寫爲主
添加
lpush key value [value1] //從左添加
rpush key value [value1] //從右添加
獲取
lrange key start stop
lindex key index
llen key
獲取並移除
lpop key //從左出
rpop key //從右出

注:
list中保存的數據都是String,數據總量是有限的,最多 2^{32}-1個元素
list具有索引的概念,但是操作數據時通常以隊列的形式進行入隊出隊操作(或以棧的形式進行入棧出棧操作)
當stop的值爲-1時,獲取的是全部數據
list對數據進行分頁操作,通常第一頁的數據使的信息來自list,其他頁面的數據通過數據形式進行加載

規定時間內獲取或移除數據
blpop key1 [key2] timeout
brpop key1 [key2] timeout
如果規定時間內沒有key的值,會出現nill,也可在規定時間內添加數據,然後顯示
應用場景
1.微信朋友圈點贊,按順序顯示點贊好友信息;取消點贊,移除好友信息
移除指定數據
lrem key count value
2.最新消息的展示在這裏插入圖片描述在這裏插入圖片描述

4.set類型

能存儲大量的數據和高效率查詢
在這裏插入圖片描述
增:sadd key member [member1]
查:smembers key
刪:srem key member [member1]
獲取總量:scard key
判定是否存在:sismember key member
隨機獲取(原集合保留):srandmember key [count]
隨機獲取並將該數據移除集合(原集合不保留):spop key
集合交集:sinter key key1 key2
集合並集:sunion key key1 key2
集合差集:sdiff key key1 key2
存儲集合交集:sinterstore destination key key1 key2
存儲集合並集:sunionstore destination key key1 key2
存儲集合差集:sdiffstore destination key key1 key2
集合元素移動:smove source destination member
在這裏插入圖片描述
應用場景
1.隨機推薦類信息檢索在這裏插入圖片描述
2.微信共同關注的公衆號,qq推薦好友
在這裏插入圖片描述
3.實現權限檢驗
在這裏插入圖片描述
在這裏插入圖片描述
4.網站訪問量統計(同類數據的去重)
在這裏插入圖片描述在這裏插入圖片描述
5.黑名單與白名單
在這裏插入圖片描述
在這裏插入圖片描述

sort_set類型

在這裏插入圖片描述
增:zadd key score member [score1 member1]
刪:zrem key member [member1]
獲取全部(正序):zrange key start stop [withscores]
獲取全部(倒序):zrevrange key start stop [withscores]
按條件查(正序):zrangebyscore key min max [withscore limit]
按條件查(倒序):zrevrangebyscore key max min [withscore limit]
按條件刪除(索引):zremrangebyrank key start stop
按條件刪除(積分):zremrangebyscore key min max
獲取集合總量:zcard key | zcount key min max
存儲集合交集: zinterstore destination numkeys key key1
存儲集合並集:zunionstore destination numkeys key key1
獲取索引(正序):zrank key member
獲取索引(倒序):zrevrank key member
score值獲取:zscore key member
score值修改:zincrby key num member
在這裏插入圖片描述
在這裏插入圖片描述
應用場景
1.應用於計數器排序組合功能對應的排名
在這裏插入圖片描述
2.
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章