redis常见操作方法

1. 什么是 Redis

Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,支持多种数据结构,可用作数据库、缓存和消息中间件。

主要特点

  • 高性能:数据存储在内存中,读写速度极快(读 11 万次/秒,写 8 万次/秒)
  • 丰富的数据类型:String、Hash、List、Set、ZSet 等
  • 持久化:支持 RDB 和 AOF 两种持久化方式
  • 高可用:支持主从复制、哨兵和集群
  • 原子操作:所有操作都是原子性的
  • 支持过期时间:可对 key 设置过期时间

典型应用场景

场景 说明
缓存 热点数据缓存,减轻数据库压力
计数器 浏览量、点赞数等
排行榜 使用 ZSet 实现
分布式锁 使用 SETNX 实现
会话缓存 存储用户登录信息
消息队列 使用 List 或 Stream

2. 安装与启动

Linux 安装

# 使用包管理器安装
sudo apt-get install redis-server   # Ubuntu/Debian
sudo yum install redis              # CentOS

# 或源码编译安装
wget http://download.redis.io/releases/redis-7.2.0.tar.gz
tar xzf redis-7.2.0.tar.gz
cd redis-7.2.0
make
sudo make install

macOS 安装

brew install redis

Docker 安装

docker run -d --name redis -p 6379:6379 redis

启动与连接

# 启动服务
redis-server

# 指定配置文件启动
redis-server /etc/redis/redis.conf

# 连接客户端
redis-cli

# 连接远程服务
redis-cli -h 127.0.0.1 -p 6379 -a password

测试是否正常

redis-cli ping
# 返回 PONG 表示正常

3. 核心数据类型

Redis 支持 5 种核心数据类型:

3.1 String(字符串)

最基本的数据类型,可以存储字符串、整数、浮点数,最大 512MB。

SET name "zhangsan"
GET name                     # "zhangsan"
INCR count                   # 自增
DECR count                   # 自减
APPEND name " hello"         # 追加
STRLEN name                  # 获取长度

3.2 Hash(哈希)

适合存储对象。

HSET user:1 name "zhangsan" age 20
HGET user:1 name             # "zhangsan"
HGETALL user:1               # 获取所有字段
HMSET user:2 name "lisi" age 25
HDEL user:1 age              # 删除字段

3.3 List(列表)

有序的字符串列表,可用作队列或栈。

LPUSH mylist "a" "b" "c"     # 左侧插入
RPUSH mylist "d"             # 右侧插入
LPOP mylist                  # 左侧弹出
LRANGE mylist 0 -1           # 获取所有元素
LLEN mylist                  # 获取长度

3.4 Set(集合)

无序的、不重复的字符串集合。

SADD myset "a" "b" "c"
SMEMBERS myset               # 获取所有成员
SISMEMBER myset "a"          # 判断是否存在
SREM myset "a"               # 删除成员
SINTER set1 set2             # 交集
SUNION set1 set2             # 并集

3.5 ZSet(有序集合)

每个成员关联一个分数,按分数排序。

ZADD rank 100 "user1" 90 "user2" 80 "user3"
ZRANGE rank 0 -1            # 按分数升序
ZREVRANGE rank 0 -1         # 按分数降序
ZSCORE rank "user1"         # 获取分数
ZRANK rank "user1"          # 获取排名
ZINCRBY rank 10 "user1"     # 增加分数

4. 常用命令

4.1 Key 操作

KEYS pattern              # 查找所有匹配的 key(生产环境慎用)
EXISTS key                # 判断 key 是否存在
DEL key                   # 删除 key
EXPIRE key seconds        # 设置过期时间(秒)
PEXPIRE key milliseconds  # 设置过期时间(毫秒)
TTL key                   # 查看剩余过期时间
PERSIST key               # 移除过期时间
RENAME oldkey newkey      # 重命名
TYPE key                  # 查看类型
SCAN cursor               # 游标式遍历(推荐替代 KEYS)

4.2 事务

Redis 事务通过 MULTI、EXEC、DISCARD、WATCH 实现。

MULTI
SET key1 "value1"
SET key2 "value2"
EXEC

4.3 发布订阅

# 订阅端
SUBSCRIBE channel1

# 发布端
PUBLISH channel1 "hello"
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容