Redis开发与运维读书笔记之四

第2章 API的理解和使用 第2部分

字符串
字符串是Redis最基础的数据结构,其他数据结构都是基于字符串构建的,键也都是字符串。
字符串的值可以是字符串、数字和二进制数据,但最大值不能超过512MB。

字符串常用命令
设置值
set key value [ex seconds][ps milliseconds] [nx|xx]

  • ex seconds:为键设置秒级过期时间
  • px milliseconds:为键设置毫秒级过期时间
  • nx:键必须不存在,才可以设置成功,用于添加
  • xx:键必须存在,才可以设置成功,用于更新

获取单个值:get key
批量设置值:mget key value [key value ...]
批量获取值:mget key [key ...]
计数:incr key
返回结果:
  • 值不是整数,返回错误
  • 值是整数,返回自增后结果
  • 键不存在,按照值为0自增,返回结果1

自减:decr
自增指定数字:incrby
自减指定数字:decrby
自增浮点数:incrbyfloat

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

使用
object encoding key
可以看到键所属的内部编码

字符串的典型使用场景
  • 缓存:加速读写和降低后端压力。比较推荐的键名是“业务名:对象名:id:[属性]”,可以防止键冲突和项目的可维护性,但也要注意键名过长对于内存的浪费
  • 计数:可以实现快速计数、查询缓存的功能,同时数据可以异步落地到其他数据源。一个真实的计数系统还要考虑防作 弊、按照不同纬度计数、数据持久化等因素
  • 共享Session:通过Redis对Session集中管理,需要保证Redis的高可用和扩展性,每次用户更新或查询登录信息都从Redis集中获取
  • 限速:在限制用户在一段时间内只能操作几次的场景,可以利用Redis的超时功能进行控制

猜你喜欢

转载自xwhuang.iteye.com/blog/2377872