下載地址:http://redis.io/download 安裝步驟: 一、yum install gcc 二、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 三、make 四、src/redis‐server redis.conf(注意要使用後臺啓動,因此修改redis.conf裏的daemonize改成y es) 五、ps ‐ef | grep redis 六、src/redis‐cli
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中儲存的數字值加1 DECR key //將key中儲存的數字值減1 INCRBY key increment //將key所儲存的值加上increment DECRBY key decrement //將key所儲存的值減去decrement
這個是微信公衆號的文章閱讀量數量的統計,能夠經過redis的string數據結構來解決。使用incr原子操做命令,redis的key是article:readcount:{文章id},當該文章被閱讀時,調用incr命令,閱讀數量加一,經過get該redis的key,實現文章閱讀數量統計的功能。前端
incr article:readcount:{文章id} get article:readcount:{文章id}
HSET key field value //存儲一個哈希表key的鍵值 HSETNX key field value //存儲一個不存在的哈希表key的鍵值 HMSET key field value [field value ...] //在一個哈希表key中存儲多個鍵值對 HGET key field //獲取哈希表key對應的field鍵值 HMGET key field [field ...] //批量獲取哈希表key中多個field鍵值 HDEL key field [field ...] //刪除哈希表key中的field鍵值 HLEN key //返回哈希表key中field的數量 HGETALL key //返回哈希表key中全部的鍵值 HINCRBY key field increment //爲哈希表key中field鍵的值加上增量increment
這個是京東購物車的截圖,能夠看到不少功能都用redis的命令可來實現。在redis中保存對商品id、購物車id等等id的操做,在前端保存對於該商品的描述,在操做購物車的時候,底層其實就是操做redis的命令。web
添加商品:hset cart:1001 1088 1 添加數量:hincrby cart:1001 1088 1 商品總數:hlen cart:1001 刪除商品:hdel cart:1001 1008 獲取購物車全部商品: hgetall cart:1001
LPUSH key value [value ...] //將一個或多個值value插入到key列表的表頭(最左邊) RPUSH key value [value ...] //將一個或多個值value插入到key列表的表尾(最右邊) LPOP key //移除並返回key列表的頭元素 RPOP key //移除並返回key列表的尾元素 LRANGE key start stop //返回列表key中指定區間內的元素,區間以偏移量start和stop指定 BLPOP key [key ...] timeout //從key列表表頭彈出一個元素,若列表中沒有元素,阻塞等待,timeout秒,若是timeout=0,一直阻塞等待 BRPOP key [key ...] timeout //從key列表表尾彈出一個元素,若列表中沒有元素,阻塞等待,timeout秒,若是timeout=0,一直阻塞等待
這是咱們常常使用的新浪微博,咱們看在微博文章中如何使用redis的list數據結構。新浪微博是使用redis的大戶,據在新浪工做的朋友說,新浪使用redis的總容量超過500T,可想而知幾乎70%的功能都在redis中操做。redis
"小米手機"發微博,消息id爲1001,使用的redis命令是:數據庫
LPUSH msg:{小強-id} 1001
"號外長沙"發微博,消息id爲1002,使用的redis命令是:編程
LPUSH msg:{小強-id} 1002
小強查看最新10條的新浪微博消息:小程序
LRANGE msg:{小強-id} 0 10
SADD key member [member ...] //往集合key中存入元素,元素存在則忽略,若key不存在則新建 SREM key member [member ...] //從集合key中刪除元素 SMEMBERS key //獲取集合key中全部元素 SCARD key //獲取集合key的元素個數 SISMEMBER key member //判斷member元素是否存在於集合key中 SRANDMEMBER key [count] //從集合key中選出count個元素,元素不從key中刪除 SPOP key [count] //從集合key中選出count個元素,元素從key中刪除
SINTER key [key ...] //交集運算 SINTERSTORE destination key [key ..] //將交集結果存入新集合destination中 SUNION key [key ..] //並集運算 SUNIONSTORE destination key [key ...] //將並集結果存入新集合destination中 SDIFF key [key ...] //差集運算 SDIFFSTORE destination key [key ...] //將差集結果存入新集合destination中
使用這個抽獎界面做爲set的使用場景的例子,相信你們對這個界面都很熟悉,微信小程序的「抽獎」功能,這個是使用redis的set數據結構的典型場景。
當用戶點擊「參與抽獎」,也就是把將用戶ID加入集合中:後端
SADD key {userID}
查看參與抽獎的全部用戶:微信小程序
SMEMBERS key
抽取count名中獎用戶微信
SRANDMEMBER key [count]
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中元素個數 ZRANGE key start stop [WITHSCORES] //正序獲取有序集合key從start下標到stop下標的元素 ZREVRANGE key start stop [WITHSCORES] //倒序獲取有序集合key從start下標到stop下標的元素
微博熱搜榜到處使用到了Redis的有序集合這個數據結構,咱們都知道有序集合是對集合的一個擴展,增長了score字段。經過score字段,咱們能夠選出最大或者最小的topN,這樣就有了排行榜,若是用傳統的數據庫去實現這個功能,估計對數據性能的消耗很是大。數據結構
1)點擊新聞 ZINCRBY hotNews:20190819 1 烏鎮十二時辰 2)展現當日排行前十 ZREVRANGE hotNews:20190819 0 10 WITHSCORES 3)七日搜索榜單計算 ZUNIONSTORE hotNews:20190813-20190819 7 hotNews:20190813 hotNews:20190814... hotNews:20190819 4)展現七日排行前十 ZREVRANGE hotNews:20190813-20190819 0 10 WITHSCORES
還沒關注個人公衆號?