目录
简介
Redis 是一个开源(BSD许可)的内存中的数据结构存储,用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合、位图、HyperLogLogs、地理空间索引和流。Redis 内置复制、Lua脚本、LRU驱动事件、事务和不同级别的磁盘持久化,还通过Redis哨兵和自动分区提供高可用性。
安装
在Linux上安装
$ sudo apt update
$ sudo apt install redis-server
$ redis-server --version
在macOS上安装
使用Homebrew安装:
$ brew update
$ brew install redis
$ redis-server /usr/local/etc/redis.conf
在Windows上安装
Windows上Redis没有官方的稳定版本,但可以使用第三方端口,如Memurai或WSL(Windows Subsystem for Linux)进行安装。
使用WSL安装Redis:
- 安装WSL和Ubuntu:
$ wsl --install $ sudo apt update $ sudo apt install redis-server - 启动Redis服务:
$ sudo service redis-server start
基本命令
连接Redis
启动Redis客户端:
$ redis-cli
键操作
SET key value # 设置一个键值对
GET key # 获取键的值
DEL key # 删除键
EXISTS key # 检查键是否存在
EXPIRE key seconds # 设置键的过期时间(秒)
字符串操作
SET key value # 设置字符串值
GET key # 获取字符串值
INCR key # 将键值加1
DECR key # 将键值减1
APPEND key value # 追加字符串到键值
STRLEN key # 获取字符串长度
哈希操作
HSET key field value # 设置哈希字段值
HGET key field # 获取哈希字段值
HDEL key field # 删除哈希字段
HGETALL key # 获取哈希所有字段和值
HEXISTS key field # 检查哈希字段是否存在
HLEN key # 获取哈希字段数量
列表操作
LPUSH key value # 向列表左侧添加元素
RPUSH key value # 向列表右侧添加元素
LPOP key # 从左侧移除并获取元素
RPOP key # 从右侧移除并获取元素
LRANGE key start stop # 获取列表范围内元素
LLEN key # 获取列表长度
集合操作
SADD key member # 向集合添加元素
SREM key member # 移除集合中的元素
SMEMBERS key # 获取集合所有元素
SISMEMBER key member # 检查元素是否在集合中
SCARD key # 获取集合元素数量
有序集合操作
ZADD key score member # 向有序集合添加元素
ZREM key member # 移除有序集合中的元素
ZRANGE key start stop # 获取有序集合范围内元素(按索引)
ZRANGEBYSCORE key min max # 获取有序集合范围内元素(按分数)
ZCARD key # 获取有序集合元素数量
ZCOUNT key min max # 获取分数范围内元素数量
高级功能
发布/订阅
PUBLISH channel message # 发布消息到频道
SUBSCRIBE channel # 订阅频道
事务
MULTI # 开始事务
EXEC # 执行事务
DISCARD # 放弃事务
脚本
EVAL script numkeys key [key ...] arg [arg ...] # 执行Lua脚本
持久化
快照持久化
Redis通过创建数据快照(Snapshotting)将数据保存到磁盘。默认配置如下:
save 900 1 # 如果900秒内至少有1个键发生变化,保存快照
save 300 10 # 如果300秒内至少有10个键发生变化,保存快照
save 60 10000 # 如果60秒内至少有10000个键发生变化,保存快照
AOF持久化
AOF(Append Only File)通过将每个写操作记录到文件来实现持久化。
启用AOF:
appendonly yes
安全
配置文件中的requirepass参数可以设置Redis的访问密码:
requirepass yourpassword
性能优化
- 使用
CONFIG SET maxmemory <bytes>来设置最大内存使用。 - 使用
CONFIG SET maxmemory-policy <policy>来设置内存溢出策略。
常见问题
Redis 连接被拒绝
确保Redis服务器正在运行,并且正确配置了绑定地址和端口。
$ redis-server /path/to/redis.conf
数据丢失
检查持久化配置,确保定期保存快照或启用AOF。
save 900 1
appendonly yes
性能下降
确保内存使用在合理范围内,检查maxmemory和maxmemory-policy配置。
这篇文档介绍了Redis的基本使用方法和高级功能。更多详细信息,请参考Redis官方文档。