redis學習筆記一

Redis啓動

兩個經常使用的redis啓動命令

redis-server       即啓動redis的服務器redis

redis-cli        啓動redis自帶的客戶端數組

 

中止redis命令:

redis-cli SHUTDOWN緩存

 

相關命令

EXISTS bar           判斷鍵值是否存在(返回值1 存在,0 不存在)ruby

DEL bar                     刪除一個或多個鍵(返回值是刪除的鍵的個數)性能優化

INCR num           使當前鍵值遞增(存儲的鍵值是整數時,遞增;非整數時,提示錯誤)服務器

 

原子操做:不可拆分的意思,即不會在執行的過程當中被其餘的命令插入打斷session

INCRBY bar 2            命令與INC基本同樣,只不過能夠指定增長的數值post

DECR bar            讓鍵值遞減性能

DECRBY bar 2 優化

APPEND key value 向鍵值的末尾追加value(返回字符串的總長度)

STRLEN key         返回鍵值的長度

MSET/MGET              SETGET功能相似,不過能夠同時操做多個鍵值

                            MSET key1 v1 key2 v2 key3 v3

                            MGET key1 key2

散列類型

HSET key field value

HGET key field

HMSET key field value [field value]

HMGET key field [filed]

HGETALL key

HEXISTS key car model

HSETNX                     命令與HSET相似,區別在於若字段已存在,則不執行任何操做

HINCRBY person score 60

HDEL key field [filed] 能夠刪除一個或多個字段

HKEYS key

HVALS key

HLEN key

列表類型

LPUSH key value [value…] 列表左邊增長元素

RPUSH key value [value…] 列表左邊增長元素

LPOP key

RPOP key

LLen numbers                          獲取元素個數

LRANGE key start stop  獲取列表的片斷,返回索引從startstop之間的全部元素

                                   (起始索引爲0,支持負索引,-1表明最右邊元素)

 

LREM key count value      刪除列表前count個值爲value的元素

(1)    count>0時,正常操做

(2)    count<0時,LREM會從列表右邊開始刪除前|count|個值爲value的元素

(3)    count=0時,刪除全部值爲value的元素

LINDEX key index             將列表當作數組使用,獲取指定索引的值

LSET key index value       

LTRIM key start end  刪除指定索引範圍外的全部元素

LINSERT key BEFORE|AFTER pivot value 從左到右查找值爲pivot的元素,將value插入該元素

的前邊或後邊

PPOPLPUSH source destination      source的右邊彈出一個元素,插入destination的左邊

 

集合類型(無序惟一)

SADD key member [member…]

SREM key member [member…]

       增長或刪除一個或多個元素,若鍵不存在,則建立,若加入元素已存在,則忽略該操做,返回值爲成功加入或刪除的元素數量 

SMEMBERS key          獲取集合中的全部的元素

SCARD key                 獲取集合中的元素個數

SRANDMEMBER key       隨機獲取一個元素

                                   可傳遞參數count隨機獲取多個元素

                                          count > 0時,獲取count個不一樣的元素

                                          count < 0時,隨機獲取|count|個元素,這些元素可能相同

SPOP key                   隨機彈出一個元素

 

有序集合類型

ZADD key score member [score member] 添加該元素和該元素的分數

ZADD testboard +inf a

ZADD testboard -inf b       +inf-inf分別表示正無窮和負無窮

ZSCORE key member        獲取member的分數

ZRANGE key start stop [WITHSCORES]  按元素分數從小到大返回索引從start

stop之間全部的元素,命令加上WITHSCORES,返回的數據格式從元素1,元素2……元素n」變成了元素1,分數1,元素2,分數2……元素n,分數n」

ZRANGEBYSCORE scoreboard min max  返回分數在minmax之間的元素(包括minmax

ZRANGEBYSCORE scoreboard min max    不包括分數爲max的元素

ZRANGEBYSCORE scoreboard min max    不包括分數爲min的元素

ZREVRANGEBYSCORE scoreboard max min LIMIT offer count

ZINCRBY scoreboard 4 Jerry 增長一個元素的分數(負數爲減分)

ZCARD key          獲取集合中元素的個數

ZCOUNT scoreboard 90 100 獲取指定分數範圍內的元素個數

ZREM key member [member]              刪除一個或多個元素

ZREMRANGEBYRANK testRem 0 2       刪除指定索引範圍內的元素

ZREMRANGEBYSCORE testRem (4  5  刪除指定分數範圍內的元素

ZRANK key member         按照從小到大的順序獲取指定元素的排名(從0開始)

ZREVRANK key member  按照從大到小的順序獲取指定元素的排名(從0開始)

 

事務

       事務是一組命令的集合,是redis最小的執行單位,是原子性的操做,要麼不執行,要麼都執行

MULTI

SADD 「user:1:following」 2

SADD 「user:2:followers」 1

EXEC

WATCH命令

       WATCH key

       WATCH能夠監控一個或多個鍵值,一旦其中一個鍵值被修改(或刪除),以後的事務就再也不執行,一直持續到EXEC命令或UNWATCH以後。

過時時間EXPIRE

       Redis能夠設置一些具備時效性的數據,到期後,Redis會自動刪除該數據

SET session:29e3d uid1314

EXPIRE session:29e3d 900   900秒後session:29e3d鍵數據失效

TTL  session:29e3d                 查看剩餘時間

PRESIST session:29e3d             將鍵恢復爲永久的

SET GETSET命令都會在從新賦值的同時,將該鍵恢復爲永久的

 

SORT命令

相關命令

SORT命令能夠對集合類型、有序集合、列表類型進行排序

SORT key                   排列數字(從小到大)

SORT key ALPHA       按照字典順序排列非數字元素

SORT key DESC           (從大到小)

SORT key DESC LIMIT 1 2 LIMIT表示跳過前offset個元素並獲取以後的count個元素)

BY參數

SORT tag:ruby:posts BY post:*->time DESC 使用tag:ruby:posts上的值替換參考鍵

中的第一個*,並獲取其值

注:1、當參考鍵名不包含*(爲常量鍵名)時,SORT命令不會執行排序操做

       2、若幾個元素的參考鍵值相同,則按照其自己的值排序

       3、當某個元素的參考鍵值不存在時,會默認參考鍵值是0

 

GET參數

做用:使返回的結果再也不是元素自己的值,而是GET參數中指定的值

SORT tag:ruly:posts BY post:*->times DESC GET post:*->titile GET post:*->time

1BY參數只能有一個,但GET參數能夠有多個

       2、若還需返回元素自己的值,可用GET #

 

STORE參數

若但願保存排序的結果,可使用STORE參數

SORT tag:ruly:posts STORE sort.result  將排序後的結果存入sort.result

STOREEXPIRE結合使用可實現緩存排序結果的功能

 

性能優化

       當須要排序的元素個數較多時,SORT命令的性能相對較低,所以使用SORT時需注意:

一、儘可能減小待排序鍵元素的數量

二、使用LIMIT只獲取須要的數據

三、若是排序的數據量較大,儘可能使用STORE對結果進行緩存

相關文章
相關標籤/搜索