引言
Redis全称为Remote Dictionary Server,即远程字典服务,是一个开源的、使用c语言编写的Key-Value数据库,支持网络交互,可基于内存也可持久化,提供了多种语言的API。
随着数据量的增长,读写数据压力也不断增大,在访问数据的过程中,我们将数据分成冷数据与热数据,热数据即指那些经常被访问到的数据。我们将热数据放于内存,可以大大提高读写速度。
与MySQL不同,Redis的数据存在内存中,读写速度非常快,每秒能处理超过10万次读写,对热数据读写提供了方案,并且经常用于做分布式锁。
一、基本数据类型
Resdis的基本类型如下
- String字符串
- Hash哈希
- List列表
- Set集合
- zset有序集合
另外还有三种特殊的数据结构
- Geospatial
- Hyperloglog
- Bitmap
1.1 String数据结构
String是redis最基础的数据结构类型,采用SDS封装
- 可以存储字符串、数字、二进制数据,值最大存储为512M
- 通常和expire配合使用
- 用于存储计数、共享session、分布式锁、计数器、限流
buf是实际存储的内容,len为buf中使用的空间,即长度,alloc为空闲空间的长度,flags的第三位记录类型,高五位为保留位
1.2 Hash哈希
在Redis中,hash是指值本身也是一个键值对结构,应用场景例如缓存用户信息等,当一个用户有多项计数需求,也可通过hash结构存储。
1.3 List列表
列表用来存储多个有序的字符串,一个列表最多存储2^32-1个元素,通常应用于消息队列、文章列表。内部编码由ziplist和linkedlist。Qiucklist结构如下,由一个双向列表和listpack实现。
1.4 Set集合
集合用来保存多个字符串元素,但不允许重复元素。有整数集合和哈希表。 主要应用场景为用户标签、生成随机数等。
1.5 zset集合
有序集合zset为已经排序的字符串集合,元素不能重复。zset结合dict可以实现跳表的功能。主要应用于排行榜、用户点赞等。
二、redis的安装与启动
redis支持linux环境的安装和使用,但如果需要在windows下使用redis怎么办呢?看看下面。 下载redis并解压压缩包,进入redis所在文件夹后输入以下命令,启动redis服务。
redis-server.exe redis.windows.conf
启动redis服务的doc窗口,此时不能关闭,服务要一直执行,之后关闭窗口即能结束服务。
测试使用时,进入redis所在文件夹后输入redis-cli,此时客户端打开,可以对redis进行操作了。