Redis核心功能与实践指南
Redis基础概念
Redis是一个开源的内存键值数据库,支持网络通信和持久化存储。其主要特性包括:
- 支持多种数据结构:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)
- 内置复制机制、LUA脚本执行、LRU淘汰策略和事务处理
- 通过哨兵机制和集群模式实现高可用
- 性能受内存容量和网络带宽影响
安装配置
Windows系统
## 安装包下载
https://github.com/microsoftarchive/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.msi
## 验证安装
redis-server -v
redis-cli -v
## 图形化工具
https://wws.lanzous.com/iSan7hgo4xe
Linux系统
wget https://download.redis.io/releases/redis-6.0.9.tar.gz
tar xzvf redis-6.0.9.tar.gz
cd redis-6.0.9
make test
make install
## 依赖处理
sudo apt-get install libc6-dev
sudo make MALLOC=libc
核心配置
daemonize yes # 后台运行
bind 0.0.0.0 # 允许远程访问
dir /var/lib/redis # 数据存储路径
dbfilename dump.rdb # RDB文件名
常用操作命令
基础命令
# 连接测试
redis-cli ping
# 数据库切换
SELECT 0-15
# 键操作
KEYS * # 列出所有键
TTL key # 查看剩余时间
EXPIRE key 60 # 设置过期时间
数据类型操作
字符串类型
SET username admin
GET username
INCR counter
哈希类型
HSET user:1001 name "Alice"
HGETALL user:1001
列表类型
LPUSH logs "error1"
LRANGE logs 0 -1
集合类型
SADD tags "python"
SMEMBERS tags
有序集合
ZADD scores 90 math
ZRANGE scores 0 -1 WITHSCORES
持久化机制
RDB快照
save 900 1
dbfilename dump.rdb
rdbcompression yes
AOF日志
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
高可用架构
主从复制
# 从节点配置
slaveof 192.168.1.10 6379
哨兵模式
sentinel monitor mymaster 192.168.1.10 6379 2
集群部署
redis-cli --cluster create \
192.168.1.10:6379 \
192.168.1.11:6379 \
--cluster-replicas 1
常见问题解决方案
缓存穿透
当查询不存在的Key时,建议采用布隆过滤器进行预判。
缓存雪崩
设置随机过期时间,配合限流降级策略。
应用场景
- String类型:分布式锁、计数器
- Hash类型:用户属性存储
- List类型:消息队列
- Zset类型:排行榜系统