通过这篇文章可以知道:
redis 有哪些数据结构类型?, 通过什么命令查询某个键是什么数据结构类型?
redis 的字符串内部编码有哪些?, 如何查询某个是字符串是什么编码?
键总数如何查? 一分钟不超过 5 次访问如何实现?
常规命令
当前数据库中键的总数
dbsize
键的过期时间信息
ttl 命令会返回键的剩余过期时间, 它有 3 种返回值:
大于等于 0 的整数: 键剩余的过期时间.
-1: 键没设置过期时间.
-2: 键不存在
键的数据结构类型
type key
type 命令实际返回的就是当前键的数据结构类型, 对外显示的, 实际上每种数据结构都有自己底层的内部编码实现, 而且是多种实现, 这样 Redis 会在合适的场景选择合适的内部编码
数据结构与内部编码
字符串命令操作
set 命令操作
ex seconds: 为键设置秒级过期时间.
px milliseconds: 为键设置毫秒级过期时间.
nx: 键必须不存在, 才可以设置成功, 用于添加.
xx: 与 nx 相反, 键必须存在, 才可以设置成功, 用于更新
setex key seconds value
setnx key value
set hello jedis xx
批量设置和批量获取
- mset key value [key value ...]
- mget key [key ...]
自增自减法
- decr key
- incrby key increment
- decrby key decrement
- incrbyfloat key increment
不常用命令
长度: strlen key 返回的是字节数, 中文则是 3 个字节
设置并返回原值: getset key value
获取部分字符串: getrange key start end
字符串内部编码
字符串类型的内部编码有 3 种:
.int: 8 个字节的长整型.
.embstr: 小于等于 39 个字节的字符串.
.raw: 大于 39 个字节的字符串
- 127.0.0.1:6379> set key 8653
- OK
- 127.0.0.1:6379> object encoding key
- "int"
应用场景
某段时间不超过多少次之类的场景
一分钟不超过 5 次
来源: http://www.jianshu.com/p/4debb1a99243