成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

本篇內(nèi)容主要講解“怎么學(xué)習(xí)redis的數(shù)據(jù)結(jié)構(gòu)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)”吧!

創(chuàng)新互聯(lián)建站專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、吉安網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為吉安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

Redis安裝

下載地址:http://redis.io/download

安裝步驟:
1、yum install gcc
2、wget http://download.redis.io/releases/redis‐5.0.3.tar.gz
tar xzf redis‐5.0.3.tar.gz
cd redis‐5.0.3
3、make
4、src/redis‐server redis.conf(注意要使用后臺(tái)啟動(dòng),所以修改redis.conf里的daemonize改為y
es)
5、ps ‐ef | grep redis
6、src/redis‐cli

Redis核心數(shù)據(jù)結(jié)構(gòu)以及使用場(chǎng)景

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

String結(jié)構(gòu)

  • 字符串常用操作

SET  key  value 			//存入字符串鍵值對(duì)
MSET  key  value [key value ...] 	//批量存儲(chǔ)字符串鍵值對(duì)
SETNX  key  value 		        //存入一個(gè)不存在的字符串鍵值對(duì)
GET  key 			        //獲取一個(gè)字符串鍵值
MGET  key  [key ...]	 	//批量獲取字符串鍵值
DEL  key  [key ...] 		//刪除一個(gè)鍵
EXPIRE  key  seconds 		//設(shè)置一個(gè)鍵的過(guò)期時(shí)間(秒)
  • 原子加減

INCR  key 			//將key中儲(chǔ)存的數(shù)字值加1
DECR  key 			//將key中儲(chǔ)存的數(shù)字值減1
INCRBY  key  increment 	//將key所儲(chǔ)存的值加上increment
DECRBY  key  decrement 	//將key所儲(chǔ)存的值減去decrement
  • String應(yīng)用場(chǎng)景

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

這個(gè)是微信公眾號(hào)的文章閱讀量數(shù)量的統(tǒng)計(jì),可以通過(guò)redis的string數(shù)據(jù)結(jié)構(gòu)來(lái)解決。使用incr原子操作命令,redis的key是article:readcount:{文章id},當(dāng)該文章被閱讀時(shí),調(diào)用incr命令,閱讀數(shù)量加一,通過(guò)get該redis的key,實(shí)現(xiàn)文章閱讀數(shù)量統(tǒng)計(jì)的功能。

incr article:readcount:{文章id}
get article:readcount:{文章id}

Hash結(jié)構(gòu)

  • Hash常用操作

HSET  key  field  value 			//存儲(chǔ)一個(gè)哈希表key的鍵值
HSETNX  key  field  value 		//存儲(chǔ)一個(gè)不存在的哈希表key的鍵值
HMSET  key  field  value [field value ...] 	//在一個(gè)哈希表key中存儲(chǔ)多個(gè)鍵值對(duì)
HGET  key  field 				//獲取哈希表key對(duì)應(yīng)的field鍵值
HMGET  key  field  [field ...] 		//批量獲取哈希表key中多個(gè)field鍵值
HDEL  key  field  [field ...] 		//刪除哈希表key中的field鍵值
HLEN  key				//返回哈希表key中field的數(shù)量
HGETALL  key				//返回哈希表key中所有的鍵值
HINCRBY  key  field  increment 		//為哈希表key中field鍵的值加上增量increment
  • Hash使用場(chǎng)景

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

這個(gè)是京東購(gòu)物車的截圖,可以看到很多功能都用redis的命令可來(lái)實(shí)現(xiàn)。在redis中保存對(duì)商品id、購(gòu)物車id等等id的操作,在前端保存對(duì)于該商品的描述,在操作購(gòu)物車的時(shí)候,底層其實(shí)就是操作redis的命令。

添加商品:hset cart:1001 1088 1
添加數(shù)量:hincrby cart:1001 1088 1
商品總數(shù):hlen cart:1001
刪除商品:hdel cart:1001 1008
獲取購(gòu)物車所有商品: hgetall cart:1001
  • Hash優(yōu)缺點(diǎn) 優(yōu)點(diǎn):同類數(shù)據(jù)歸類整合存儲(chǔ),方便數(shù)據(jù)管理,相比string操作消耗內(nèi)存與cpu更小 缺點(diǎn):過(guò)期功能上不能使用在field上,只能使用在key上

List結(jié)構(gòu)

  • List常用操作

LPUSH  key  value [value ...] 		//將一個(gè)或多個(gè)值value插入到key列表的表頭(最左邊)
RPUSH  key  value [value ...]	 	//將一個(gè)或多個(gè)值value插入到key列表的表尾(最右邊)
LPOP  key			//移除并返回key列表的頭元素
RPOP  key			//移除并返回key列表的尾元素
LRANGE  key  start  stop		//返回列表key中指定區(qū)間內(nèi)的元素,區(qū)間以偏移量start和stop指定

BLPOP  key  [key ...]  timeout	//從key列表表頭彈出一個(gè)元素,若列表中沒(méi)有元素,阻塞等待,timeout秒,如果timeout=0,一直阻塞等待
BRPOP  key  [key ...]  timeout 	//從key列表表尾彈出一個(gè)元素,若列表中沒(méi)有元素,阻塞等待,timeout秒,如果timeout=0,一直阻塞等待
  • List的應(yīng)用場(chǎng)景

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

這是我們經(jīng)常使用的新浪微博,我們看在微博文章中如何使用redis的list數(shù)據(jù)結(jié)構(gòu)。新浪微博是使用redis的大戶,據(jù)在新浪工作的朋友說(shuō),新浪使用redis的總?cè)萘砍^(guò)500T,可想而知幾乎70%的功能都在redis中操作。

"小米手機(jī)"發(fā)微博,消息id為1001,使用的redis命令是:

LPUSH msg:{小強(qiáng)-id} 1001

"號(hào)外長(zhǎng)沙"發(fā)微博,消息id為1002,使用的redis命令是:

LPUSH msg:{小強(qiáng)-id} 1002

小強(qiáng)查看最新10條的新浪微博消息:

LRANGE msg:{小強(qiáng)-id} 0 10

Set結(jié)構(gòu)

  • Set常用操作

SADD  key  member  [member ...]			//往集合key中存入元素,元素存在則忽略,若key不存在則新建
SREM  key  member  [member ...]			//從集合key中刪除元素
SMEMBERS  key					//獲取集合key中所有元素
SCARD  key					//獲取集合key的元素個(gè)數(shù)
SISMEMBER  key  member			//判斷member元素是否存在于集合key中
SRANDMEMBER  key  [count]			//從集合key中選出count個(gè)元素,元素不從key中刪除
SPOP  key  [count]				//從集合key中選出count個(gè)元素,元素從key中刪除
  • Set運(yùn)算操作

SINTER  key  [key ...] 				//交集運(yùn)算
SINTERSTORE  destination  key  [key ..]		//將交集結(jié)果存入新集合destination中
SUNION  key  [key ..] 				//并集運(yùn)算
SUNIONSTORE  destination  key  [key ...]		//將并集結(jié)果存入新集合destination中
SDIFF  key  [key ...] 				//差集運(yùn)算
SDIFFSTORE  destination  key  [key ...]		//將差集結(jié)果存入新集合destination中
  • Set使用場(chǎng)景

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

使用這個(gè)抽獎(jiǎng)界面作為set的使用場(chǎng)景的例子,相信大家對(duì)這個(gè)界面都很熟悉,微信小程序的“抽獎(jiǎng)”功能,這個(gè)是使用redis的set數(shù)據(jù)結(jié)構(gòu)的典型場(chǎng)景。 當(dāng)用戶點(diǎn)擊“參與抽獎(jiǎng)”,也就是把將用戶ID加入集合中:

SADD key {userID}

查看參與抽獎(jiǎng)的所有用戶:

SMEMBERS key

抽取count名中獎(jiǎng)用戶

SRANDMEMBER key [count]

Zset有序集合結(jié)構(gòu)

  • ZSet常用操作

ZADD key score member [[score member]…]	//往有序集合key中加入帶分值元素
ZREM key member [member …]		//從有序集合key中刪除元素
ZSCORE key member 			//返回有序集合key中元素member的分值
ZINCRBY key increment member		//為有序集合key中元素member的分值加上increment 
ZCARD key				//返回有序集合key中元素個(gè)數(shù)
ZRANGE key start stop [WITHSCORES]	//正序獲取有序集合key從start下標(biāo)到stop下標(biāo)的元素
ZREVRANGE key start stop [WITHSCORES]	//倒序獲取有序集合key從start下標(biāo)到stop下標(biāo)的元素
  • Zset使用場(chǎng)景

怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)

微博熱搜榜處處使用到了Redis的有序集合這個(gè)數(shù)據(jù)結(jié)構(gòu),我們都知道有序集合是對(duì)集合的一個(gè)擴(kuò)展,增加了score字段。通過(guò)score字段,我們可以選出最大或者最小的topN,這樣就有了排行榜,如果用傳統(tǒng)的數(shù)據(jù)庫(kù)去實(shí)現(xiàn)這個(gè)功能,估計(jì)對(duì)數(shù)據(jù)性能的消耗非常大。

1)點(diǎn)擊新聞
ZINCRBY  hotNews:20190819  1  烏鎮(zhèn)十二時(shí)辰
2)展示當(dāng)日排行前十
ZREVRANGE  hotNews:20190819  0  10  WITHSCORES 
3)七日搜索榜單計(jì)算
ZUNIONSTORE  hotNews:20190813-20190819  7 
hotNews:20190813  hotNews:20190814... hotNews:20190819
4)展示七日排行前十
ZREVRANGE hotNews:20190813-20190819  0  10  WITHSCORES

到此,相信大家對(duì)“怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享題目:怎么學(xué)習(xí)Redis的數(shù)據(jù)結(jié)構(gòu)
標(biāo)題網(wǎng)址:http://jinyejixie.com/article14/iephge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣定制網(wǎng)站、網(wǎng)站營(yíng)銷、建站公司、網(wǎng)站導(dǎo)航

廣告

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

商城網(wǎng)站建設(shè)
海晏县| 格尔木市| 华池县| 石柱| 当阳市| 鄂托克前旗| 泸水县| 荔波县| 邢台县| 区。| 萨迦县| 肇庆市| 德钦县| 江口县| 井研县| 奉新县| 酉阳| 兴仁县| 宜章县| 廊坊市| 霍林郭勒市| 林口县| 宝兴县| 颍上县| 鹤庆县| 江源县| 湖口县| 红河县| 宝坻区| 广汉市| 息烽县| 康保县| 福清市| 溧阳市| 鹤峰县| 瓮安县| 论坛| 南京市| 胶南市| 海口市| 九龙坡区|