黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Redis數據類型及應用場景

Redis數據類型及應用場景

更新時間:2022-04-13 10:17:09 來源:動力節點 瀏覽1574次

數據類型

Redis 共有五種類型,結合其他類型,幾乎是相同的 8 種類型。即String、hash、list、set、zset、geo、bitmaps、hyperLogLog和Stream。

字符串類型

String 類型是Redis字符串類型,類似于鍵值對的一種形式。

通常我們使用 String 類型來存儲商品的數量、用戶信息和分布式鎖等應用場景。

1.入庫貨品數量。

set goods:count:1 1233
set goods:count:2 100

2.用戶信息。

set user:1 "{"id":1, "name":" Zhang San ", "age": 12}"
set user:2 "{"id":2, "name":" Li Si ", "age": 12}"

3.分布式鎖。

# Set a nonexistent key named id:1 The value is 10, The expiration date is 10 second .
127.0.0.1:6379> set id:1 10 ex 10 nx
OK
127.0.0.1:6379> get id:1
"10"
# The current key has not expired yet , If it is set at this time, it will not be set successfully .
127.0.0.1:6379> set id:1 10 ex 10 nx
(nil)
# When 10 Get it in seconds , The current key is empty .
127.0.0.1:6379> get id:1
(nil)

哈希類型

hash 類型是一種類似于關系數據庫結構的數據結構。有一個鍵名,鍵存儲的內容以鍵值對的形式存在。

利用哈希結構,我們可以用它來存儲用戶信息、對象信息等業務場景。

1.保存用戶信息。

127.0.0.1:6379> hset user:1 id 1 name zhangsan age 12 sex 1
(integer) 4
127.0.0.1:6379> hset user:2 id 2 name lisi age 14 sex 0
(integer) 4
127.0.0.1:6379> hmget user:1 id name age sex
1) "1"
2) "zhangsan"
3) "12"
4) "1"

2.存儲對象信息。

127.0.0.1:6379> hset object:user id public-1 name private-zhangsan
(integer) 2
127.0.0.1:6379> hmget object:uesr id name
1) (nil)
2) (nil)
127.0.0.1:6379> hget object:user id
"public-1"
127.0.0.1:6379>

列表類型

list 類型是一種列表類型的數據結構。用一個鍵,按順序排列數據。

list 最常見的場景是 queue 、 Stack 和秒殺等。

1.排隊。

127.0.0.1:6379> lpush list:1 0 1 2 3 4 5 6
(integer) 7
127.0.0.1:6379> rpop list:1 1
1) "0"
127.0.0.1:6379> rpop list:1 1
1) "1"
127.0.0.1:6379> rpop list:1 1
1) "2"

2. 堆疊。

127.0.0.1:6379> lpush list:1 3 4 5 6
(integer) 3
127.0.0.1:6379> lpop list:1
"6"
127.0.0.1:6379> lpop list:1
"5"
127.0.0.1:6379> lpop list:1
"4"
127.0.0.1:6379> lpop list:1
"3"

3.秒殺。

127.0.0.1:6379> lpush order:user 11 12 14 15 16 17
(integer) 6

設置類型

zet 是一個集合類型,而且這個集合中的元素是不必要的,不會重復。set Type可用于用戶簽到、網站訪問統計、用戶關注標簽、好友推薦、猜謎游戲、隨機數生成等業務場景。

1. 某天用戶簽到。

127.0.0.1:6379> sadd sign:2020-01-16 1 2 3 4 5 6 7 8
(integer) 8
127.0.0.1:6379> smembers sign:2020-01-16
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"

2. 用戶關注標簽。

127.0.0.1:6379> sadd user:1:friend 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> sadd user:2:friend 11 22 7 4 5 6
(integer) 6
127.0.0.1:6379> sinterstore user:relation user:1:friend user:2:friend
(integer) 3
127.0.0.1:6379> smembers user:relation
1) "4"
2) "5"
3) "6"

3.玩猜謎游戲。

127.0.0.1:6379> spop user:2:friend 1
1) "5"

zset 類型

zset 的 type 和 set 類型都是集合類型,兩者的區別,設置 zset 為數據設置一個分數,這個分數可以用于數據排序,同時 zset 類型的數據也是有序的,因此 zset 也稱為有序集合。

zset 除了可以用在 set 一個可用的場景中,更多的可以用在排序的場景中,比如排行榜、延遲隊列,就好像一個未付款的訂單會失效多久。

1.簽到排行榜。

127.0.0.1:6379> zadd goods:order 1610812987 1
(integer) 1
127.0.0.1:6379> zadd goods:order 1610812980 2
(integer) 1
127.0.0.1:6379> zadd goods:order 1610812950 3
(integer) 1
127.0.0.1:6379> zadd goods:order 1610814950 4
(integer) 1
127.0.0.1:6379> zcard goods:order
(integer) 4
127.0.0.1:6379> zrangebyscore goods:order 1610812950 1610812987
1) "3"
2) "2"
3) "1"

位圖類型

位圖底層存儲是二進制格式的數據。在某些特定情況下,使用這種類型,可以大大減少存儲空間,因為存儲的數據只能是0和1。為了便于理解,這種數據格式可以理解為數組。

利用這個特性,你可以在一些訪問統計、簽到統計等中使用這個類型。

1. 用戶一個月的簽到記錄。

127.0.0.1:6379> setbit user:2020-01 0 1
(integer) 0
127.0.0.1:6379> setbit user:2020-01 1 1
(integer) 0
127.0.0.1:6379> setbit user:2020-01 2 1
(integer) 0
127.0.0.1:6379> bitcount user:2020-01 0 4
(integer) 3

2.統計某天網站的簽到數。

127.0.0.1:6379> setbit site:2020-01-17 1 1
(integer) 0
127.0.0.1:6379> setbit site:2020-01-17 3 1
(integer) 0
127.0.0.1:6379> setbit site:2020-01-17 4 1
(integer) 0
127.0.0.1:6379> setbit site:2020-01-17 6 1
(integer) 0
127.0.0.1:6379> bitcount site:2020-01-17 0 100
(integer) 4
127.0.0.1:6379> getbit site:2020-01-17 5
(integer) 0

3.計算一段時間內,登錄的用戶數。

127.0.0.1:6379> setbit site:2020-01-18 6 1
(integer) 0
127.0.0.1:6379> setbit site:2020-01-18 4 1
(integer) 0
127.0.0.1:6379> setbit site:2020-01-18 7 1
(integer) 0
127.0.0.1:6379> bitop and continue:site site:2020-01-18 site:2020-01-17
(integer) 1

HypefLogLog 類型

HypefLogLog 類型在使用方面,有點像集合類型。這種類型實際上是一個字符串類型的數據結構。使用這種類型最大的好處就是減少了空間、但也有一定的錯誤率。這種類型也不允許同一個 key 有重復的元素。此類型還支持合并多個鍵 Value 。

這種數據類型一般用于一些不需要精確計算的統計場景。

1.用戶登錄統計。

127.0.0.1:6379> pfadd 2020:01:sgin 1 2 3 4 5 6 7 8
(integer) 1
# Try adding... Repeatedly
127.0.0.1:6379> pfadd 2020:02:sgin 1 2 3 4 5 6 7 8
(integer) 0
127.0.0.1:6379> pfadd 2020:02:sgin 9
(integer) 1
127.0.0.1:6379> pfadd 2020:02:sgin 10
(integer) 1
127.0.0.1:6379> pfadd 2020:02:sgin 11
(integer) 1
127.0.0.1:6379> pfcount 2020:02:sgin
(integer) 11

GEO類型

GEO Type是一種存儲地理信息的數據格式,基于數據的特性。可以用于一些距離計算、附近推薦等業務場景。

1.距離計算
 

127.0.0.1:6379> geoadd city:distance nx 121.32 42.36 beijing 121.20 38.56
shanghai 100.36 38.56 sichuan
(integer) 3
127.0.0.1:6379> geopos city:distance beijing shanghai sichuan
1) 1) "121.32000178098678589"
2) "42.36000020595371751"
2) 1) "121.19999974966049194"
2) "38.55999947301710762"
3) 1) "100.3599974513053894"
2) "38.55999947301710762"
# Calculate the distance between Beijing and Shanghai
127.0.0.1:6379> geodist city:distance beijing shanghai km
"422.7819"

流類型

Stream 類型是 Redis 在 5.0 以后的版本中增加了新的數據結構。這種數據結構主要用于用戶消息隊列場景。Redis 本身有一個發布訂閱(pub/sub)來實現消息隊列的功能,但是有個缺點就是消息不持久,如果有網絡disconnect 、Redis Downtime 等,消息會被丟棄。

1. 消息隊列

# Add message queue
127.0.0.1:6379> xadd message * name zhangsan age 12
"1610873104343-0"
127.0.0.1:6379> xrange message - +
1) 1) "1610873104343-0"
2) 1) "name"
2) "zhangsan"
3) "age"
4) "12"
# Get message queue
127.0.0.1:6379> xrevrange message + - count 1
1) 1) "1610873104343-0"
2) 1) "name"
2) "zhangsan"
3) "age"
4) "12"

以上就是關于“Redis數據類型及應用場景”的介紹,大家如果對此比較感興趣,想了解更多相關知識,不妨來關注一下動力節點的Redis教程,里面的課程內容細致全面,通俗易懂,很適合沒有基礎的小白學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 麻豆果冻传媒新剧国产短视频 | 在线观看亚洲成人 | 日韩精品一区二区三区国语自制 | 大象焦伊人久久综合网色视 | 男女很黄很色床视频网站免 | 成人久久免费视频 | 插插插www | 亚洲最大激情中文字幕 | 色成人在线| 91短视频版在线观看免费大全 | 国产一区免费在线观看 | 在线视频a | 国产伦一区二区三区高清 | 日韩人体在线 | 日韩国产精品欧美一区二区 | 成人亚州 | 老妇女人一级毛片 | 丝袜制服中文字幕 | 五月香婷 | 亚洲视频91 | 久久伊人色 | 日本成人一级 | 97精品伊人久久久大香线焦 | 免费一级毛片在线播放 | 波多野结衣一区二区三区高清在线 | 国产精品亚洲片在线牛牛影视 | 色爱区综合激情五月综合激情 | 久久天堂网 | 欧美成人午夜不卡在线视频 | 成人在线免费看 | 中国日韩欧美中文日韩欧美色 | 黄色免费网站观看 | 综合久久99| 亚洲国产欧美久久香综合 | 日韩色爱 | 日韩大片免费观看 | 九九99在线视频 | 国产成人91| 欧美激情午夜 | 婷婷精品在线 | 黄色在线观看www |