ITPub博客

首页 > 数据库 > NoSQL > redis string结构及命令详解【三】

redis string结构及命令详解【三】

原创 NoSQL 作者:哎呀我的天呐 时间:2015-08-18 11:56:49 0 删除 编辑
在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博客 ” ,链接:https://blog.itpub.net/29990276/viewspace-1775029/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
https://cloud.tencent.com/developer/inventory/14362

注册时间:2014-10-30

  • 博文量
    403
  • 访问量
    2528846