欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

浅谈redis数据结构

程序员文章站 2022-07-13 11:11:51
...

1. redis安装

       正式的redis是安装在linux操作系统上的,但是考虑到很多小伙伴对windows是比较熟悉的。因此,redis windows安装的版本如下:https://github.com/MicrosoftArchive/redis/releases。从这个github上选择对应的release版本,比如,我这里安装的是3.0.504,下载msi或zip都可以,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

 

       我这里选择的是msi,后面的安装就不在累述。本地安装好以后,打开redis的安装路径,例如:我本地安装在D:\Program Files\Redis,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

 

       如图中标出来的两个exe文件:redis-server.exe和redis-cli.exe,分别是redis的服务端和redis的客户端。

下面我们启动redis服务,这里启动redis服务的方式有很多种,篇幅所限,我这里就介绍下,利用git客户端,启动redis服务,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

 

       redis服务启动成功后,我们再启动redis客户端,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

 

2. 数据结构

       熟悉redis的小伙伴都知道,redis存储的整体结构是(K,V)结构,即键-值结构。对于键(K),有一些通用的全局命令,这里只做几个简单的说明:

命令 描述
keys * 查看所有键
dbsize 键总数
exists key 检查键是否存在
del key 删除键
expire key seconds 键过期
type key 键的数据结构类型

 

对于值(V),redis中有五种数据结构。这五种数据结构分别是:

数据结构 描述
string 字符串
hash 哈希
list 列表
set 集合
zset 有序集合

 

这种键-值结构,只是redis对外的数据结构,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

 

       这种对外的数据结构,其中每种数据结构实际上都有自己底层的内部编码实现,而且是多种实现。这样Redis会在合适的 场景 选择合适的 内部编码,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

 

       可以看到,每种数据结构都有两种以上的内部编码实现。例如:list数据结构包含了linkedlist和ziplist两种内部编码。同时有些内部编码,例如:ziplist,可以作为多种外部数据结构的内部实现,可以通过object encoding命令查询内部编码,如下图所示:

浅谈redis数据结构
            
    
    博客分类: Redis redis数据结构 

       

        Redis这样设计有两点好处,其一:可以改进内部编码,而对外的数据结构和命令没有影响。例如:Redis3.2提供的quicklist,结合了ziplist和linkedlist 两者的优势,为列表类型提供了一种更加高效的内部编码实现;其二:不同内部编码可以在不同场景下发挥各自的优势。例如:ziplist比较节省内存,但是在列表元素比较多的情况下,性能会有所下降,这时候Redis会根据配置,将列表类型的内部实现转换为linkedlist。

 

3. 后续

       由于篇幅限制,后续的文章中,会分别对redis的五种数据结构分别做研究。关于字符串数据结构的,请阅读:浅谈redis数据结构之字符串

相关标签: redis数据结构