redis string結構及命令詳解【三】

哎呀我的天吶發表於2015-08-18
在key設定之處就有生命週期:
set key value [ex 秒]/[px 毫秒]
set key value [nx]/[xx] 
nx:表示key不存在時執行操作(NOT EXIST)
xx:表示key存在時執行操作

點選(此處)摺疊或開啟

  1. set site www.redis.io ex 10
site key不存在,所以nx才能改

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> set site www.memcached.org xx
  2. (nil)
  3. 127.0.0.1:6379> set site www.memcached.org nx
  4. OK
mset一次性設定多個鍵值:

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> mset empno 7788 ename scott sal 2000 comm 100 deptno 20
  2. OK
  3. 127.0.0.1:6379> get empno
  4. "7788"
  5. 127.0.0.1:6379> get ename
  6. "scott"
  7. 127.0.0.1:6379> get sal
  8. "2000"
  9. 127.0.0.1:6379> get comm
  10. "100"
  11. 127.0.0.1:6379> get deptno
  12. "20"
一次獲得多個鍵值mget:

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> mget empno ename sal comm deptno
  2. 1) "7788"
  3. 2) "scott"
  4. 3) "2000"
  5. 4) "100"
  6. 5) "20"
setrange key offset value:第一位標記為0

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> set word hello
  2. OK
  3. 127.0.0.1:6379> setrange word 2 ??
  4. (integer) 5
  5. 127.0.0.1:6379> get word
  6. "he??o"
  7. 127.0.0.1:6379> setrange word 2 #######
  8. (integer) 9
  9. 127.0.0.1:6379> get word
  10. "he#######"
  11. 127.0.0.1:6379> set word hello
  12. OK
  13. 127.0.0.1:6379> get word
  14. "hello"
  15. 127.0.0.1:6379> setrange word 6 !
  16. (integer) 7
  17. 127.0.0.1:6379> get word
  18. "hello\x00!"
如果偏移位大於字元長度,新增16進位制0補充。

追加append:

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> get word
  2. "hello\x00!"
  3. 127.0.0.1:6379> append word sb
  4. (integer) 9
  5. 127.0.0.1:6379> get word
  6. "hello\x00!sb"
擷取子串:自己體會吧... ...

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> get word
  2. "hello\x00!sb"
  3. 127.0.0.1:6379> getrange word 0 3
  4. "hell"
  5. 127.0.0.1:6379> getrange word 3 5
  6. "lo\x00"

  7. 127.0.0.1:6379> getrange word 1 3
  8. "ell"
  9. 127.0.0.1:6379> set status working
  10. OK
  11. 127.0.0.1:6379> get status
  12. "working"
  13. 127.0.0.1:6379> getrange status 0 -3
  14. "worki"
  15. 127.0.0.1:6379> getrange status 0 -4
  16. "work"
  17. 127.0.0.1:6379> getrange status 6 3
  18. ""
  19. 127.0.0.1:6379> getrange status 5 4
  20. ""
getset:獲得舊值的同時設定新值。

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> get word
  2. "hello\x00!sb"
  3. 127.0.0.1:6379> getset word hellpabc
  4. "hello\x00!sb"
  5. 127.0.0.1:6379> getset word hello
  6. "hellpabc"
  7. 127.0.0.1:6379> get word
  8. "hello"
incr/decr/incrby num/decrby age 5

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> set age 20
  2. OK
  3. 127.0.0.1:6379> incr age
  4. (integer) 21
  5. 127.0.0.1:6379> get incr
  6. (nil)
  7. 127.0.0.1:6379> decr age
  8. (integer) 20
說個設計的例子就是 搶手機活動,比如1分鐘10w個訂單,這個處理要在redis中做,只要先獲得資格就可以。
set number 100000 來搶單的話decr一下

incrbyfloat:

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> incrbyfloat age 0.5
  2. "20.5"
setbit:按照位 運算

點選(此處)摺疊或開啟

  1. 127.0.0.1:6379> set char A
  2. OK
  3. 127.0.0.1:6379> setbit char 2 1
  4. (integer) 0
  5. 127.0.0.1:6379> get char
  6. "a"
  7. 127.0.0.1:6379> set char b
  8. OK
  9. 127.0.0.1:6379> setbit char 2 0
  10. (integer) 1
  11. 127.0.0.1:6379> get char
  12. "B"
bitop or res char lower    char和lower做為與運算結果是res






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-1775029/,如需轉載,請註明出處,否則將追究法律責任。

相關文章