Redis 使用文档

163 阅读2分钟

目录

  1. 简介
  2. 安装
  3. 基本命令
  4. 高级功能
  5. 持久化
  6. 安全
  7. 性能优化
  8. 常见问题

简介

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:

  1. 安装WSL和Ubuntu:
    $ wsl --install
    $ sudo apt update
    $ sudo apt install redis-server
    
  2. 启动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

性能下降

确保内存使用在合理范围内,检查maxmemorymaxmemory-policy配置。


这篇文档介绍了Redis的基本使用方法和高级功能。更多详细信息,请参考Redis官方文档