Redis 入门
作为一个前端工程师,或许你没用过 Redis ,但应该都听说过它,下面让我们重头开始,快速地了解一下 Redis。
什么是 Redis
Redis(Remote Dictionary Server) 是一种基于内存的数据存储系统,它是一种高性能的键值对存储数据库,也被称为缓存数据库。
其主要的优点有:
- 快速:Redis 可以在内存中快速执行读写操作,因此速度非常快。Redis 的速度比传统的关系型数据库(如 MySQL)快几个数量级,这使得 Redis 成为需要快速读写大量数据的应用程序的首选解决方案。
- 支持多种数据结构:Redis 不仅支持简单的键值对存储,还支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。这些数据结构可以满足不同的需求,例如可以使用哈希结构来存储用户信息,使用列表结构来存储日志数据。
- 持久化:Redis 可以通过将数据写入磁盘来实现数据持久化,这样即使 Redis 服务器崩溃或关闭,数据也可以在重新启动后恢复。
- 原子性:在 Redis 中,原子性是指一个操作要么全部执行成功,要么全部执行失败,不存在部分执行的情况。例如,当多个客户端同时对同一个键进行读写操作时,Redis 会依次处理每个操作,确保每个操作都是原子性的,避免了并发访问的问题。
- 高并发:Redis 支持多个客户端并发访问,因此可以满足高并发的需求。
- 可扩展性:Redis 可以通过集群方式实现横向扩展,从而支持大规模应用场景。
- 开源:Redis 是一款完全开源的软件(BSD证书),用户可以免费使用并修改源代码以适应自己的需求。
Redis 中常见数据类型
基本数据类型
Redis 的基本数据类型有如下几种:
- 字符串类型(string):可以存储字符串、整数或浮点数等类型的值。
- 列表类型(list):由一系列按照插入顺序排序的元素组成,可以在列表头部或尾部添加、删除元素。
- 集合类型(set):由一系列无序且唯一的元素组成,支持添加、删除元素,并且可以进行交集、并集、差集等集合操作。
- 有序集合类型(sorted set):与集合类型类似,但每个元素有一个分数(score)与之关联,可以按照分数排序。
- 哈希类型(hash):由一系列键值对组成,支持添加、删除元素,并且可以获取、修改、查询键值对的值。
高级数据类型
除了上述基本数据类型之外,Redis 还提供了一些高级数据类型,例如:
- 布隆过滤器类型(Bloom Filter):用于判断某个元素是否存在于一个集合中,具有高效查询和存储的特点。
- 地理空间类型(Geospatial):用于存储地理位置信息,并支持按照地理距离查询附近的位置。
- HyperLogLog 类型:用于处理基数计数(cardinality counting)问题,即统计一个集合中元素的个数,具有高效的存储和查询性能。
更多数据类型可参考 官方文档。
Redis 安装&使用
通过第三方工具安装
由于笔者使用的是 macOS ,所以为了方便,就使用 Homebrew 进行安装,如果你使用的是其它操作系统,或者其它第三方工具的话,建议直接跳到 通过编译源码进行安装 章节进行观看,或者参考 官方的安装文档,这里就不赘述了。
- 通过 Homebrew 安装
在终端执行以下命令安装 Redis:
brew install redis
- 启动 Redis
brew services start redis
注意:以上命令将启动 Redis 服务并将其设置为开启自启动,如果需要停止 Redis 服务,可执行以下命令:
brew services stop redis
- 连接 Redis
redis-cli
连接后终端会进入 Redis 的命令行操作区域,大概长这样子 127.0.0.1:6379>
可进行一些常规操作,如果要退出可执行 exit
或者直接按 Control + C
。
- 卸载 Redis
为了流程完备,增加了卸载方法,如果不需要可跳过。
先停止 Redis:
brew services stop redis
然后删除 Redis:
brew uninstall redis
最后删除相关配置文件和数据:
- 移除 Redis Sentinel 的配置文件
rm -rf /usr/local/etc/redis-sentinel.conf
- 移除 Redis 配置文件
rm -rf /usr/local/etc/redis.conf
- 移除 Redis 数据文件
rm -rf /usr/local/var/db/redis
通过编译源码进行安装
如果是个人或者开发环境中快速安装和管理 Redis,建议通过 HomeBrew 这些第三方工具进行安装,在生产环境中使用,最好还是通过发布的二进制包或者从源代码编译安装 Redis 比较稳妥。
- 下载 Redis
在 Redis 的 官网 中,下载最新的 Redis 压缩包,解压到任意位置,例如:/usr/local/redis
。
或者通过 wget 工具直接下载:
wget https://download.redis.io/redis-stable.tar.gz
创建 Redis 存放目录:
sudo mkdir /usr/local/redis/
通过 tar 解压到 /usr/local/redis
:
sudo tar -xzvf redis-stable.tar.gz -C /usr/local/redis/
- 编译安装 Redis
在解压后的 Redis 目录下,执行以下命令编译 Redis:
sudo make
编译完成后,执行以下命令安装 Redis:
make install
- 启动 Redis
在终端中执行以下命令启动 Redis:
redis-server
如果要指定配置文件启动Redis,可以使用以下命令:
redis-server /path/to/redis.conf
- 连接 Redis
在另一个终端中执行以下命令连接 Redis:
redis-cli
- 修改 Redis 配置文件
sudo vim redis.conf
- 为了能在后台运行 Redis 服务,我将
daemonize no
改为daemonize yes
- 为了方便查看日志,
logfile ""
改为logfile /usr/local/redis/redis-stable/log
- 为了安全起见,开启密码,将
# requirepass
注释去掉,改为requirepass yourPassword
macOS 或者 Linux 用户可以用终端随机生成密码:
openssl rand -base64 10
保存配置后重新启动服务即可:
sudo redis-server redis.conf
- Redis 基本操作
连接 Redis 后,可以进行以下基本操作:
- 设置键值对:
set key value
- 获取键值对:
get key
- 删除键值对:
del key
- 判断键是否存在:
exists key
- 获取所有键:
keys *
- 删除所有键值对:
flushall
更多 Redis 命令可以参考 Redis 官网的文档:https://redis.io/commands