Redis 基础:安装、常用命令、持久化、主从
| 从安装到常用命令、持久化、主从复制。
第一步:安装
Ubuntu / Debian
sudoaptupdatesudoaptinstall-yredis-serverCentOS / RHEL
sudoyuminstall-yredis# 或sudodnfinstall-yredis启动服务
sudosystemctl start redissudosystemctlenableredis验证
redis-cliping# 输出:PONG第二步:基本操作
连接 Redis
redis-cli常用命令
# 设置键值SET key value# 获取键值GET key# 删除键DEL key# 检查键是否存在EXISTS key# 设置过期时间(秒)SETEX key60value# 查看剩余过期时间TTL key# 查看所有键KEYS *# 查看键的类型TYPE key数据类型
String(字符串)
SET name"Alice"GET name INCR counter# 自增DECR counter# 自减INCRBY counter10# 加 10Hash(哈希)
HSET user:1 name"Alice"HSET user:1 age25HGET user:1 name HGETALL user:1 HDEL user:1 ageList(列表)
LPUSH mylist"item1"LPUSH mylist"item2"LRANGE mylist0-1# 获取所有元素LPOP mylist# 从左边弹出RPOP mylist# 从右边弹出Set(集合)
SADD myset"item1"SADD myset"item2"SMEMBERS myset SISMEMBER myset"item1"SREM myset"item1"Sorted Set(有序集合)
ZADD myzset1"item1"ZADD myzset2"item2"ZRANGE myzset0-1ZSCORE myzset"item1"ZREM myzset"item1"第三步:配置
配置文件位置
/etc/redis/redis.conf# Ubuntu/etc/redis.conf# CentOS常用配置
# 绑定地址(默认只监听 127.0.0.1)bind0.0.0.0# 端口port6379# 密码requirepass yourpassword# 最大内存maxmemory 256mb# 内存淘汰策略maxmemory-policy allkeys-lru重启服务
sudosystemctl restart redis第四步:持久化
Redis 默认把数据存在内存,重启会丢数据。持久化就是把数据写到磁盘。
RDB(快照)
# 配置save9001# 900 秒内至少 1 个 key 变化就保存save30010# 300 秒内至少 10 个 key 变化就保存save6010000# 60 秒内至少 10000 个 key 变化就保存# 手动保存SAVE# 阻塞式保存BGSAVE# 后台保存RDB 优点:文件小、恢复快。缺点:可能丢数据。
AOF(追加日志)
# 配置appendonlyyesappendfsync everysec# 每秒同步一次AOF 优点:数据更安全。缺点:文件大、恢复慢。
推荐配置
# 同时开启 RDB 和 AOFsave9001save30010save6010000appendonlyyesappendfsync everysec第五步:主从复制
主节点配置
# 主节点不需要特殊配置bind0.0.0.0从节点配置
# 从节点配置文件replicaof192.168.1.1006379验证
# 主节点redis-cli INFO replication# 从节点redis-cli INFO replication从节点会显示:
role:slave master_host:192.168.1.100 master_port:6379 master_link_status:up主从复制特点
- 主节点可读写,从节点只读
- 从节点自动同步主节点数据
- 主节点挂了,从节点不会自动切换(需要哨兵)
第六步:常用运维命令
# 查看信息INFO# 查看内存使用INFO memory# 查看连接数INFO clients# 查看慢查询SLOWLOG GET10# 清空所有数据FLUSHALL# 清空当前数据库FLUSHDB# 查看数据库大小DBSIZE# 查看键的数量KEYS *|wc-l常见问题
连接不上
# 检查服务状态sudosystemctl status redis# 检查端口ss-tlnp|grep6379# 检查防火墙sudoufw allow6379/tcp内存满了
# 查看内存使用INFO memory# 设置最大内存CONFIG SET maxmemory 256mb# 设置淘汰策略CONFIG SET maxmemory-policy allkeys-lru慢查询
# 查看慢查询SLOWLOG GET10# 设置慢查询阈值(毫秒)CONFIG SET slowlog-log-slower-than10000主从不同步
# 检查从节点状态INFO replication# 检查网络ping192.168.1.100# 检查主节点日志tail-f/var/log/redis/redis-server.log总结
| 操作 | 命令 |
|---|---|
| 安装 | apt install redis-server |
| 启动 | systemctl start redis |
| 连接 | redis-cli |
| 设置键值 | SET key value |
| 获取键值 | GET key |
| 删除键 | DEL key |
| 查看所有键 | KEYS * |
| 查看信息 | INFO |
| 主从复制 | replicaof 192.168.1.100 6379 |
日常开发记住这几条就够了。更复杂的集群、哨兵是进阶内容。