通过这篇文章可以知道:
- redis有哪些数据结构类型?,通过什么命令查询某个键是什么数据结构类型?
- redis的字符串内部编码有哪些?,如何查询某个是字符串是什么编码?
- 键总数如何查?一分钟不超过5次访问如何实现?
常规命令
-
当前数据库中键的总数
dbsize -
键的过期时间信息
ttl命令会返回键的剩余过期时间, 它有3种返回值:
大于等于0的整数: 键剩余的过期时间。
-1: 键没设置过期时间。
-2: 键不存在 -
键的数据结构类型
type key
type命令实际返回的就是当前键的数据结构类型,对外显示的,实际上每种数据结构都有自己底层的内部编码实现, 而且是多种实现,这样Redis会在合适的场景选择合适的内部编码
数据结构与内部编码
字符串命令操作
- set命令操作
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次
网友评论