欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Redis中的基本數(shù)據(jù)類型有哪些

這篇文章主要講解了“redis中的基本數(shù)據(jù)類型有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Redis中的基本數(shù)據(jù)類型有哪些”吧!

創(chuàng)新互聯(lián)專注于岑溪網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供岑溪營銷型網(wǎng)站建設(shè),岑溪網(wǎng)站制作、岑溪網(wǎng)頁設(shè)計(jì)、岑溪網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造岑溪網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供岑溪網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

Redis中的基本數(shù)據(jù)類型有哪些

Redis數(shù)據(jù)結(jié)構(gòu)簡介

對redis來說,所有的key(鍵)都是字符串。我們在談基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)時(shí),討論的是存儲(chǔ)值的數(shù)據(jù)類型,主要包括常見的5種數(shù)據(jù)類型,分別是:String、List、Set、Zset、Hash。【相關(guān)推薦:Redis視頻教程】

Redis中的基本數(shù)據(jù)類型有哪些

結(jié)構(gòu)類型結(jié)構(gòu)存儲(chǔ)的值結(jié)構(gòu)的讀寫能力
String字符串可以是字符串、整數(shù)或浮點(diǎn)數(shù)對整個(gè)字符串或字符串的一部分進(jìn)行操作;對整數(shù)或浮點(diǎn)數(shù)進(jìn)行自增或自減操作;
List列表一個(gè)鏈表,鏈表上的每個(gè)節(jié)點(diǎn)都包含一個(gè)字符串對鏈表的兩端進(jìn)行push和pop操作,讀取單個(gè)或多個(gè)元素;根據(jù)值查找或刪除元素;
Set集合包含字符串的無序集合字符串的集合,包含基礎(chǔ)的方法有看是否存在添加、獲取、刪除;還包含計(jì)算交集、并集、差集等
Hash散列包含鍵值對的無序散列表包含方法有添加、獲取、刪除單個(gè)元素
Zset有序集合和散列一樣,用于存儲(chǔ)鍵值對字符串成員與浮點(diǎn)數(shù)分?jǐn)?shù)之間的有序映射;元素的排列順序由分?jǐn)?shù)的大小決定;包含方法有添加、獲取、刪除單個(gè)元素以及根據(jù)分值范圍或成員來獲取元素

基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)詳解

String字符串

String是redis中最基本的數(shù)據(jù)類型,一個(gè)key對應(yīng)一個(gè)value。

String類型是二進(jìn)制安全的,意思是 redis 的 string 可以包含任何數(shù)據(jù)。如數(shù)字,字符串,jpg圖片或者序列化的對象。

  • 命令使用

命令簡述使用
GET獲取存儲(chǔ)在給定鍵中的值GET name
SET設(shè)置存儲(chǔ)在給定鍵中的值SET name value
DEL刪除存儲(chǔ)在給定鍵中的值DEL name
INCR將鍵存儲(chǔ)的值加1INCR key
DECR將鍵存儲(chǔ)的值減1DECR key
INCRBY將鍵存儲(chǔ)的值加上整數(shù)INCRBY key amount
DECRBY將鍵存儲(chǔ)的值減去整數(shù)DECRBY key amount
  • 命令執(zhí)行

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get hello
(nil)
127.0.0.1:6379> get counter
"2"
127.0.0.1:6379> incr counter
(integer) 3
127.0.0.1:6379> get counter
"3"
127.0.0.1:6379> incrby counter 100
(integer) 103
127.0.0.1:6379> get counter
"103"
127.0.0.1:6379> decr counter
(integer) 102
127.0.0.1:6379> get counter
"102"
  • 實(shí)戰(zhàn)場景

    • 緩存: 經(jīng)典使用場景,把常用信息,字符串,圖片或者視頻等信息放到redis中,redis作為緩存層,MySQL做持久化層,降低mysql的讀寫壓力。

    • 計(jì)數(shù)器:redis是單線程模型,一個(gè)命令執(zhí)行完才會(huì)執(zhí)行下一個(gè),同時(shí)數(shù)據(jù)可以一步落地到其他的數(shù)據(jù)源。

    • session:常見方案spring session + redis實(shí)現(xiàn)session共享,

List列表

Redis中的List其實(shí)就是鏈表(Redis用雙端鏈表實(shí)現(xiàn)List)。

使用List結(jié)構(gòu),我們可以輕松地實(shí)現(xiàn)最新消息排隊(duì)功能(比如新浪微博的TimeLine)。List的另一個(gè)應(yīng)用就是消息隊(duì)列,可以利用List的 PUSH 操作,將任務(wù)存放在List中,然后工作線程再用 POP 操作將任務(wù)取出進(jìn)行執(zhí)行。

  • 命令使用

命令簡述使用
RPUSH將給定值推入到列表右端RPUSH key value
LPUSH將給定值推入到列表左端LPUSH key value
RPOP從列表的右端彈出一個(gè)值,并返回被彈出的值RPOP key
LPOP從列表的左端彈出一個(gè)值,并返回被彈出的值LPOP key
LRANGE獲取列表在給定范圍上的所有值LRANGE key 0 -1
LINDEX通過索引獲取列表中的元素。你也可以使用負(fù)數(shù)下標(biāo),以 -1 表示列表的最后一個(gè)元素, -2 表示列表的倒數(shù)第二個(gè)元素,以此類推。LINEX key index
  • 使用列表的技巧

    • lpush+lpop=Stack(棧)

    • lpush+rpop=Queue(隊(duì)列)

    • lpush+ltrim=Capped Collection(有限集合)

    • lpush+brpop=Message Queue(消息隊(duì)列)

  • 命令執(zhí)行

127.0.0.1:6379> lpush mylist 1 2 ll ls mem
(integer) 5
127.0.0.1:6379> lrange mylist 0 -1
1) "mem"
2) "ls"
3) "ll"
4) "2"
5) "1"
127.0.0.1:6379> lindex mylist -1
"1"
127.0.0.1:6379> lindex mylist 10        # index不在 mylist 的區(qū)間范圍內(nèi)
(nil)
  • 實(shí)戰(zhàn)場景

    • 微博TimeLine: 有人發(fā)布微博,用lpush加入時(shí)間軸,展示新的列表信息。

    • 消息隊(duì)列

Set集合

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現(xiàn)重復(fù)的數(shù)據(jù)。

Redis 中集合是通過哈希表實(shí)現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是 O(1)。

  • 命令使用

命令簡述使用
SADD向集合添加一個(gè)或多個(gè)成員SADD key value
SCARD獲取集合的成員數(shù)SCARD key
SMEMBER返回集合中的所有成員SMEMBER key member
SISMEMBER判斷 member 元素是否是集合 key 的成員SISMEMBER key member

其它一些集合操作,請參考這里

https://www.runoob.com/redis/redis-sets.html

  • 命令執(zhí)行

127.0.0.1:6379> sadd myset ycf ycf1 xiao ycf
(integer) 3
127.0.0.1:6379> smember myset
1) "xiao"
2) "ycf1"
3) "ycf"
127.0.0.1:6379> sismember myset ycf
(integer) 1
  • 實(shí)戰(zhàn)場景

    • 標(biāo)簽(tag),給用戶添加標(biāo)簽,或者用戶給消息添加標(biāo)簽,這樣有同一標(biāo)簽或者類似標(biāo)簽的可以給推薦關(guān)注的事或者關(guān)注的人。

    • 點(diǎn)贊,或點(diǎn)踩,收藏等,可以放到set中實(shí)現(xiàn)

Hash散列

Redis hash 是一個(gè) string 類型的 field(字段) 和 value(值) 的映射表,hash 特別適合用于存儲(chǔ)對象。

  • 命令使用

命令簡述使用
HSET添加鍵值對HSET hash-key sub-key1 value1
HGET獲取指定散列鍵的值HGET hash-key key1
HGETALL獲取散列中包含的所有鍵值對HGETALL hash-key
HDEL如果給定鍵存在于散列中,那么就移除這個(gè)鍵HDEL hash-key sub-key1
  • 命令執(zhí)行

127.0.0.1:6379> hset user name1 ycf
(integer) 1
127.0.0.1:6379> hset user email1 ycf@163.com
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "ycf"
3) "email1"
4) "ycf@163.com"
127.0.0.1:6379> hget user user
(nil)
127.0.0.1:6379> hget user name1
"ycf"
127.0.0.1:6379> hset user name2 xiaoycf
(integer) 1
127.0.0.1:6379> hset user email2 xiaoycf@163.com
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "ycf"
3) "email1"
4) "ycf@163.com"
5) "name2"
6) "xiaoycf"
7) "email2"
8) "xiaoycf@163.com"
  • 實(shí)戰(zhàn)場景

    • 緩存: 能直觀,相比string更節(jié)省空間,的維護(hù)緩存信息,如用戶信息,視頻信息等。

Zset有序集合

Redis 有序集合和集合一樣也是 string 類型元素的集合,且不允許重復(fù)的成員。不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè) double 類型的分?jǐn)?shù)。redis 正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。

有序集合的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。集合是通過哈希表實(shí)現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是 O(1)。

  • 命令使用

命令簡述使用
ZADD將一個(gè)帶有給定分值的成員添加到哦有序集合里面ZADD zset-key 178 member1
ZRANGE根據(jù)元素在有序集合中所處的位置,從有序集合中獲取多個(gè)元素ZRANGE zset-key 0-1 withccores
ZREM如果給定元素成員存在于有序集合中,那么就移除這個(gè)元素ZREM zset-key member1

  • 命令執(zhí)行

127.0.0.1:6379> zadd myscoreset 100 ycf 90 xiaoycf
(integer) 2
127.0.0.1:6379> ZRANGE myscoreset 0 -1
1) "xiaoycf"
2) "ycf"
127.0.0.1:6379> ZSCORE myscoreset ycf
"100"
  • 實(shí)戰(zhàn)場景

    • 排行榜:有序集合經(jīng)典使用場景。例如小說視頻等網(wǎng)站需要對用戶上傳的小說視頻做排行榜,榜單可以按照用戶關(guān)注數(shù),更新時(shí)間,字?jǐn)?shù)等打分,做排行。

感謝各位的閱讀,以上就是“Redis中的基本數(shù)據(jù)類型有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Redis中的基本數(shù)據(jù)類型有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站欄目:Redis中的基本數(shù)據(jù)類型有哪些
URL地址:http://www.chinadenli.net/article44/gcsghe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google電子商務(wù)域名注冊網(wǎng)頁設(shè)計(jì)公司用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)