一、Redis 介绍
Redis 是开源的高性能键值对 NoSQL 数据库,基于内存运行,支持数据持久化与多种数据结构,具备分布式集群能力,广泛用于高并发、高读写效率场景。
核心特点
- 数据结构丰富:支持 String、Hash、List、Set、ZSet(有序集合),可直接在服务端操作数据,减少网络 IO。
- 高性能:单核处理小数据性能优异,读写速度极快。
- 持久化保障:支持 RDB 快照、AOF 日志两种持久化方式,重启可恢复数据。
- 分布式与高可用:Redis Cluster 无中心集群,支持主从复制、故障自动转移。
- 多数据库:默认 16 个独立数据库(0-15),支持数据隔离与移动。
- 内存管理:基于 zmalloc 封装 malloc/free,简洁高效。
二、Redis 作用
- 高性能缓存:减轻数据库压力,支撑高并发读写。
- 数据持久化存储:内存数据落地磁盘,重启不丢失。
- 分布式场景支撑:分布式锁、计数器、限流、消息队列。
- 复杂业务处理:利用列表、集合、有序集合实现排行榜、关注列表、去重统计。
- 高可用架构:主从复制、集群部署,避免单点故障。
三、Redis 实验步骤
实验 1:Redis 安装与基础配置
关闭防火墙与 SELinux
systemctl stop firewalld
setenforce 0
安装依赖
yum -y install gcc* zlib-devel
解压并编译 Redis
tar xvzf redis-4.0.9.tar.gz
cd redis-4.0.9/
make
# 编译报错执行:make MALLOC=libc 或 make clean && make distclean
make PREFIX=/usr/local/redis install
建立软链接
ln -s /usr/local/redis/bin/* /usr/local/bin/
执行安装脚本
cd utils/
./install_server.sh
查看进程与端口
netstat -anpt | grep redis
服务控制命令
/etc/init.d/redis_6379 stop/start/restart/status
修改核心配置(/etc/redis/6379.conf)
vim /etc/redis/6379.conf
bind 127.0.0.1 192.168.10.101 # 监听地址
port 6379 # 端口
daemonize yes # 守护进程
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis_6379.log
重启服务生效
/etc/init.d/redis_6379 restart
Redis 命令工具使用
redis-cli 连接与测试
# 本地连接
redis-cli
# 测试连通性
127.0.0.1:6379> ping # 返回PONG正常
# 远程连接
redis-cli -h 192.168.10.101 -p 6379
帮助命令
127.0.0.1:6379> help @list # 查看List命令
127.0.0.1:6379> help set # 查看set命令
redis-benchmark 性能测试
# 100并发、10万请求测试
redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000
# 100字节数据存取测试
redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100
# 仅测试set、lpush
redis-benchmark -t set,lpush -n 100000 -q
Redis 数据库常用命令
基础键值操作
127.0.0.1:6379> set teacher zhanglong
127.0.0.1:6379> get teacher
Key 管理命令
KEYS * # 查看所有键
KEYS v* # 查看v开头键
EXISTS teacher # 判断键是否存在
DEL v5 # 删除键
TYPE k1 # 查看值类型
RENAME v22 v2 # 重命名(会覆盖)
RENAMENX v2 teacher # 安全重命名(目标存在不执行)
DBSIZE # 查看键数量
多数据库操作
SELECT 10 # 切换到库10
MOVE k1 1 # 将当前库k1移到库1
FLUSHDB # 清空当前库
FLUSHALL # 清空所有库
实验 2:Redis 持久化配置
**RDB 持久化配置(默认开启)**编辑配置文件
vim /etc/redis/6379.conf
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /var/lib/redis/6379
rdbcompression yes
AOF 持久化配置
appendonly yes # 开启AOF
appendfilename "appendonly.aof"
appendfsync everysec # 每秒同步
aof-load-truncated yes
# AOF重写触发配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
重启服务并手动重写 AOF
/etc/init.d/redis_6379 restart
127.0.0.1:6379> bgrewriteaof
Redis 性能管理与密码设置
查看内存信息
127.0.0.1:6379> info memory
内存回收策略配置(配置文件)
maxmemory-policy allkeys-lru # 常用策略
设置密码
-
临时生效(重启失效)
127.0.0.1:6379> config set requirepass 123456
-
永久生效(修改配置文件)
vim /etc/redis/6379.conf
requirepass 123456
带密码连接
redis-cli -a 123456
# 或连接后认证
127.0.0.1:6379> auth 123456
安全关闭
redis-cli -a 123456 shutdown