[关闭]
@hainingwyx 2019-02-15T08:37:11.000000Z 字数 1155 阅读 846

API的理解和使用2--字符串

redis


命令

常用命令

  1. # 设置值,返回OK代表设置成功
  2. set key value [ex seconds] [px milliseconds] [nx|xx]
  3. # ex seconds:设置秒级过期时间
  4. # px milliseconds:设置毫秒级过期时间
  5. # nx:键必须不存在才能设置成功,用于添加
  6. # xx:键必须存在才能设置成功,用于更新
  7. # 设置值
  8. setex key seconds value
  9. setnx key value
  10. # 获取值
  11. get key
  12. # 批量操作可以减少网络时间,提高业务处理效率,但每次批量操作命令数有限制,过多会造成redis阻塞或者网络阻塞
  13. # 批量设置值
  14. mset key value [key value ...]
  15. # 批量获取值,不存在则返回nil
  16. mget key [key ...]
  17. # 计数
  18. # 单线程架构不需要使用CAS机制,没有额外开销
  19. # 值不是整数时,返回错误
  20. # 键不存在,按照值为0自增
  21. incr key
  22. # 自减
  23. decr key
  24. # 自增指定数字
  25. incrby key increment
  26. # 自减指定数字
  27. decrby key decrement
  28. # 自增浮点数
  29. incrbyfloat key increment

不常用命令

  1. # 字符串尾部追加值
  2. append key value
  3. # 字符串长度,一个中文占3个字节
  4. strlen key
  5. # 设置并返回原值
  6. getset key value
  7. # 设置指定位置的字符
  8. setrange key offset value
  9. # 获取部分字符串
  10. getrange key start end

内部编码

内部编码有:
+ int:8个字节的长整型
+ embstr:小于等于39个字节的字符串
+ raw:大于39个字节的字符串

使用场景

参考文献

https://redis.io/topics/distlock
批量操作命令数量的上限
CAS机制

开发提示

键名的设置:“业务名:对象名:id:[属性]”,如果当前redis只被一个业务使用,可以去掉业务名。如果键比较长,可以适当减少键的长度,从而减少由于键过长的内存浪费

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注