Redis打怪升級趴俘,技術干貨(壹)

本文準備從以下幾個方面去講解redis打怪進階:
1)Redis的安裝歇式。
2)Redis的數(shù)據(jù)類型及應用場景芯咧。

Redis安裝

下載地址:http://redis.io/download
安裝步驟:
1牙捉,# 安裝gcc (因redis是c語言寫的)
yum install gcc
2,#把下載好的redis-5.0.3.tar.gz放在/user/local文件夾下敬飒,并解壓
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,#進入到解壓好的redis-5.0.3目錄下邪铲,進行編譯與安裝
make
4,#啟動并指定配置文件
src/redis-server redis.conf(注意要使用后臺啟動无拗,所以修改redis.conf里的daemonize改為yes)
5带到,#驗證啟動是否成功
ps -ef | grep redis
6,#進入redis客戶端
src/redis-cli
7,#退出客戶端
quit
8,#退出redis服務
1)pkill redis-server
2) kill 進程號
3) src/redis-cli shutdown

redis五種數(shù)據(jù)結構:String、Hash英染、List揽惹、Set、Zset

1)String

字符串常用操作

set key value //存入字符串鍵值對
mset key value [key value ...] //批量存儲字符串鍵值對
setnx key value //存入一個不存在的字符串鍵值對
get key //獲取一個字符串鍵值
mget key [key ...] //批量獲取字符串鍵值
del key [key...] //刪除一個鍵
expire key seconds //設置一個鍵的過期時間(秒)

原子加減

incr key //將key中儲存的數(shù)字值加1
decr key //將key中儲存的數(shù)字值減1
incrby key increment //將key所儲存的值加上increment
decrby key decrement //將key所儲存的值減去decrment

應用場景:

計數(shù)器:
incr article:readcount:{文章id}
get article:readcount:{文章id}


image.png

2)Hash

相當于一個大map四康,多了外面一層key搪搏。然后map中的value里面又有key和value
Hash常用操作:
Hset key field value //存儲一個哈希表key的鍵值。
Hget key field value [field value... ] //獲取哈希表key對應的field鍵值闪金。

Hash應用場景:

. 電商購物車
1)以用戶id位key
2)商品id位field
3)商品數(shù)量為value


image.png

· 購物車操作

1)添加商品 ->hset cart:10001 10088 1

  1. 添加數(shù)量 ->hincrby cart:1001 10088 1

  2. 商品總數(shù) ->hlen cart:1001

  3. 刪除商品 ->hdel cart:1001 10088

  4. 獲取購物車所有商品 ->hgetall cart:1001
    優(yōu)缺點:
    ·優(yōu)點
    1)同類數(shù)據(jù)歸類整合儲存疯溺,方便數(shù)據(jù)管理
    2)相比String操作消耗內(nèi)存與cpu更小
    3)相比String儲存更節(jié)約空間
    ·缺點
    1)過期功能不能使用在field上,只能用在key上
    2)Redis集群架構下不適合大規(guī)模使用毕泌。

3) List

· List常用操作
lpush key value [value ...] //將一個或多個值value插入到列表的表頭(最左邊)
rpush key value [value ...] //將一個或多個值value插入到列表的表尾(最右邊)
lpop key //移除并返回key列表的頭元素
rpop key //移除并返回key列表的尾元素


image.png

應用場景:
微博和微信公眾號消息流


image.png

4)Set

· Set常用操作

sadd key member [member ...] //往集合key中存入元素喝检,元素存在則忽略,若key不存在則新建撼泛。
srem key member [member ...] //從集合中key中刪除元素
smembers key //獲取集合中所有的元素
scard key //獲取集合key的元素個數(shù)
srandmember key [count] //從集合key中選出count個元素挠说。元素不從key中刪除
spop key [count] //從集合key中選出count個元素,元素從key中刪除愿题。

·Set運算操作

sinter key [key ...] //交集運算
sinterstore destination key [key ...] //將交集結果存入新集合destination中
sunion key [key ...] //并集運算
sunionstore destination key [key ...] //將并集結果存入新集合destination中
sdiff key [key ...] //差集運算
sdiffstore destination key [key ...] //將差集結果存入新集合destination中

應用場景
· 1 微信抽獎小程序
image.png

1)點擊參與抽獎加入集合
sadd key {userId}
2)查看參與抽獎所有用戶
smembers key
3)抽取count名中獎者
srandmember key [count] / spop key [count]

2 微信微博點贊损俭,收藏,標簽
image.png

1)點贊
sadd like:{消息id} {用戶id}
2)取消點贊
srem like:{消息id} {用戶id}
3)檢查用戶是否點過贊
sismember like:{消息id} {用戶id}
4)獲取點贊的用戶列表
smembers like:{消息id}
5)獲取點贊用戶數(shù)
scard like:{消息id}

3 集合操作
image.png

sinter set1 set2 set3 ->{c}
sunion set1 set2 set3 ->{a,b,c,d,e}
sdiff set1 set2 set3 ->{a}

4 集合操作實現(xiàn)微博微信關注模型
image.png

1)諸葛關注的人:
zhugeSet -->{yangguo,sima,luban}
2)楊過關注的人:
yangguoSet -->{zhuge,sima,luban,guojia}
3)司馬關注的人:
simaSet-->{zhuge,yangguo,guojia,luban,xunyu}
4)諸葛和楊過共同關注:
sinter zhuge lisi -->{sima,luban}
5,諸葛關注的人也關注(楊過):
sismember simaSet yangguo
sismember lubanSet yangguo
6)諸葛可能認識的人:
sdiff yangguoSet zhugeSet -->{zhuge,guojia}

5 集合操作實現(xiàn)電商商品篩選
image.png

5)Zset

應用場景

Zset集合操作實現(xiàn)排行耪


image.png

1)點擊新聞
zincrby hotNews:20191016 1 守護香港
2)展示當日排行前十
3)七日搜索榜單計算
zunionstore hotNews:20191016 7
4)展示七日排行前十
zrevrange hotNews:20191016 -20191023 0 10 withscores

后續(xù)更精彩E诵铩杆兵!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仔夺,隨后出現(xiàn)的幾起案子琐脏,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件日裙,死亡現(xiàn)場離奇詭異吹艇,居然都是意外死亡,警方通過查閱死者的電腦和手機昂拂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門受神,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人格侯,你說我怎么就攤上這事鼻听。” “怎么了联四?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵撑碴,是天一觀的道長。 經(jīng)常有香客問我碎连,道長灰羽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任鱼辙,我火速辦了婚禮,結果婚禮上玫镐,老公的妹妹穿的比我還像新娘倒戏。我一直安慰自己,他們只是感情好恐似,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布杜跷。 她就那樣靜靜地躺著,像睡著了一般矫夷。 火紅的嫁衣襯著肌膚如雪葛闷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天双藕,我揣著相機與錄音淑趾,去河邊找鬼。 笑死忧陪,一個胖子當著我的面吹牛扣泊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘶摊,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼延蟹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了叶堆?” 一聲冷哼從身側響起阱飘,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沥匈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體果录,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年咐熙,在試婚紗的時候發(fā)現(xiàn)自己被綠了弱恒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡棋恼,死狀恐怖返弹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爪飘,我是刑警寧澤义起,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站师崎,受9級特大地震影響默终,放射性物質發(fā)生泄漏。R本人自食惡果不足惜犁罩,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一齐蔽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧床估,春花似錦含滴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至递胧,卻和暖如春碑韵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缎脾。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工祝闻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赊锚。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓治筒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舷蒲。 傳聞我的和親對象是個殘疾皇子耸袜,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348