Redis基础数据结构

《Redis 深度历险:核心原理和应用实践》之 Redis基础数据结构

Redis 安装

体验 Redis 需要使用 Linux 或者 Mac 环境,如果是 Windows 可以考虑使用虚拟机。

主要方式有四种:

1、使用 Docker 安装。

2、通过 Github 源码编译。

3、直接安装 apt-get install(Ubuntu)yum install(RedHat) 或者brew install(Mac)

4、如果读者懒于安装操作,也可以使用网页版的 Web Redis 直接体验。

具体操作如下:

Docker 方式

# 拉取 redis 镜像
> docker pull redis 

# 运行 redis 容器

> docker run --name myredis -d -p6379:6379 redis 

# 执行容器中的 redis-cli,可以直接使用命令行操作 redis

> docker exec -it myredis redis-cli 

Github 源码编译方式

# 下载源码
> git clone --branch 2.8 --depth 1 git@github.com:antirez/redis.git 
> cd redis 
# 编译
> make 
> cd src 
# 运行服务器,daemonize 表示在后台运行
> ./redis-server --daemonize yes 
# 运行命令行
> ./redis-cli

直接安装方式

# mac 
> brew install redis 
# ubuntu 
> apt-get install redis 
# redhat
> yum install redis 
# 运行客户端
> redis-cli

Redis 基础数据结构

Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。熟练掌握这 5 种基本数据结构的使用是 Redis 知识最基础也最重要的部分,它也是在 Redis 面试题中问到最多的内容。

string (字符串)

字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。

字符串结构使用非常广泛,一个常见的用途就是缓存用户信息。我们将用户信息结构体使用 JSON 序列化成字符串,然后将序列化后的字符串塞进 Redis 来缓存。同样,取用户信息会经过一次反序列化的过程。

Redis 的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于 Java 的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配,如图中所示,内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度 len。当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。

键值对

> set name codehole 

OK 

> get name 

"codehole"

> exists name 

(integer) 1 

> del name 

(integer) 1 

> get name 

(nil) 

批量键值对

可以批量对多个字符串进行读写,节省网络耗时开销。

> set name1 codehole 

OK 

> set name2 holycoder 

OK 

> mget name1 name2 name3 # 返回一个列表

1) "codehole" 

2) "holycoder" 

3) (nil) 

> mset name1 boy name2 girl name3 unknown 

> mget name1 name2 name3 

1) "boy" 

2) "girl" 

3) "unknown"


过期和 set 命令扩展

可以对 key 设置过期时间,到点自动删除,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值