redis数据结构

简介

redis是KV型NoSQL,基于键值对中的值,提供了5中数据结构:string、list、zset、hash、set,每种数据结构都有多种底层编码实现,在合适的场景选择合适的内部编码
redis数据结构_第1张图片

Redis全局命令

命令 命名描述
keys * 查看所有键,时间复杂度O(N),会遍历所有键,当保存了大量key时,线上环境禁止使用,需要耗费非常多时间
dbsize 键总数,时间复杂度O(1),不会遍历所有键得到总数,直接访问内部的键总数的变量
exists key 检查键是否存在,存在返回1,不存在返回0
del key [key…] del是通用命令,无论值是什么数据类型,都可以将其删除,返回成功删除键的个数
expire key seconds 对键添加过期时间,超过过期时间后会自动删除键
ttl key 返回键的剩余过期时间,-1表示键没设置过期时间,-2键不存在
type key 键的数据结构类型,键不存在,返回none
object encoding key 查询内部编码

redis数据结构选择

对外有5种数据结构,对内每种数据结构有多种编码实现,这样有两个好处:
一是使得外部数据结构和内部编码实现进行解耦,这样改进内部编码的话,对外的数据结构和命令是没有影响的
二是多种编码实现可以在不同的场景下发挥各自的优势,例如ziplist比较节省内存,但在列表元素比较多的时候,性能会下降,这时候redis会将列表类型的内部实现转换成linkedlist。

你可能感兴趣的:(redis)