ToB企服应用市场:ToB评测及商务社交产业平台

标题: Redis初阶条记 [打印本页]

作者: 诗林    时间: 2025-2-16 10:36
标题: Redis初阶条记




1. 认识Redis

        Redis是一个基于内存运行的缓存中间件,有着多种的数据范例可供使用。Redis的使用主要是为关系性数据库(MySQL等)分担压力,在高并发情况下MySQL执行命令的压力是很大的,容易宕机,以是需要中间件分担压力
2. Redis的数据范例

数据范例特性实际使用
String 二进制安全,可以存放所有范例的数据
最大内存512M
存在INCR、DECR方法
用作热数据缓存
做访问量、点赞数的加减
list双向链表日记记录,文章推送
set 无序去重
有spop方法,随机弹出一个
集合运算
抽奖功能
朋友圈点赞,可能相识的人
zset存在分数排名的set热门,排名榜单
bitmap 一个8bit位为一组的数据
0-7,8-15,16-23,24-31
可记录打卡,签到
HyperLogLog
基数统计
计算两个数据的基数
统计去重访问量
GEO
地理位置计算位置相关的数据
hash类似map的数据结构
Stream
消息流
bitfield
二进制操作
3. 持久化

RDB快照生存,设定一定的时间和操作次数,主动生存 save 90 10
90秒内存在10次操作生存一次快照
AOF

操作记录,全部记录偏移量同步
4. 事务、管道

        Redis也存在事务,事务开启存在两种情况,一种是语法错误后直接放弃这次操作;第二种是运行中数值发生错误,其他操作正常见效,错误的操作不见效
        Redis管道,一次性将多条命令进行执行
5. Redis单机、主从、集群安装部署

5.1. 单机版命令

        redis安装步调
  1. # 查看gcc版本
  2. gcc -v
  3. # 解压安装包
  4. tar -zxvf redis-7.0.15.tar.gz
  5. # 安装redis,需要进入redis目录下
  6. make && make install
  7. # 启动redis
  8. redis-server redis.conf
  9. # 登录客户端
  10. redis-cli -a duomu -p 6379
复制代码
        redis配置文件 
  1. # redis.conf配置
  2. # 对外访问
  3. bind 0.0.0.0
  4. # 守护进程
  5. daemonize yes
  6. # 保护模式
  7. protected-mode no
  8. # 端口
  9. port 6379
  10. # 进程文件
  11. pidfile /var/run/redis_server.pid
  12. # log日志
  13. logfile  "./redis_server.log"
  14. # 目录文件
  15. dir ./
  16. # RBD文件
  17. dbfilename dump.rdb
  18. # 保存设置
  19. save 60 10
  20. # AOF记录操作
  21. appendonly yes
  22. # AOF文件
  23. appendfilename "appendonly.aof"
  24. # 登录密码
  25. requirepass duomu
  26. # 从机认证密码
  27. masterauth duomu
复制代码
5.2. 主从+哨兵

        redis主从架构一般需要哨兵监听,如果主机宕机了,哨兵会通过投票选出哨兵的leader,然后leader会在从机中选出一个升级为主机。如果主机重启了,那么它会降级为从机  

        主机配置
  1. # 主机配置
  2. # redis.conf配置
  3. # 对外访问
  4. bind 0.0.0.0
  5. # 守护进程
  6. daemonize yes
  7. # 保护模式
  8. protected-mode no
  9. # 端口
  10. port 6379
  11. # 进程文件
  12. pidfile /var/run/redis_server.pid
  13. # log日志
  14. logfile  "./redis_server.log"
  15. # 目录文件
  16. dir ./
  17. # RBD文件
  18. dbfilename dump.rdb
  19. # 保存设置
  20. save 60 10
  21. # AOF记录操作
  22. appendonly yes
  23. # AOF文件
  24. appendfilename "appendonly.aof"
  25. # 登录密码
  26. requirepass duomu
复制代码
        从机配置 
  1. # 从机配置
  2. # redis.conf配置
  3. # 对外访问
  4. bind 0.0.0.0
  5. # 守护进程
  6. daemonize yes
  7. # 保护模式
  8. protected-mode no
  9. # 端口
  10. port 6379
  11. # 进程文件
  12. pidfile /var/run/redis_server.pid
  13. # log日志
  14. logfile  "./redis_server.log"
  15. # 目录文件
  16. dir ./
  17. # RBD文件
  18. dbfilename dump.rdb
  19. # 保存设置
  20. save 60 10
  21. # AOF记录操作
  22. appendonly yes
  23. # AOF文件
  24. appendfilename "appendonly.aof"
  25. # 登录密码
  26. requirepass duomu
  27. # 配置主从
  28. replicaof <主ip> <端口>
  29. # 主机认证密码
  30. masterauth duomu
复制代码
        哨兵配置 
  1. # 哨兵配置
  2. bind 0.0.0.0
  3. protected-mode no
  4. port 26379
  5. daemonize yes
  6. pidfile /var/run/redis-sentinel.pid
  7. logfile "./sentinel.log"
  8. # 哨兵监听主机 2为投票数 一般为 (监听器总数/2)+1
  9. sentinel monitor mymaster <主机ip> <端口> 2
  10. # 主机秘钥
  11. sentinel auth-pass mymaster duomu
复制代码
5.3. 集群安装

        集群使用了CRC16的算法进行哈希槽的分配,哈希槽分区(CRC(16) mod 16384),
最高分区为1000个,16384为槽数2^14
        如果主机宕机,从机遇升级为主机,主机重启后会降级为从机
        如果想保持原来配置,需要通过命令进行变更,节点附属调解 cluster failover

        redis安装6台服务
  1. # redis安装6台服务
  2. bind 0.0.0.0
  3. daemonize yes
  4. protected-mode no
  5. port 6381
  6. pidfile /var/run/redis_cluster.pid
  7. logfile "./cluster.log"
  8. dir ./cluster
  9. dbfilename dump.rdb
  10. appendonly yes
  11. appendfilename "appendonly.aof"
  12. requirepass duomu
  13. masterauth duomu
  14. # 集群开启
  15. cluster-enabled yes
  16. cluster-config-file nodes.conf
  17. cluster-node-timeout 5000
复制代码
        上面配置启动redis服务后,将所有服务器加入集群,构建三主三从
  1. # 后面为真实的redis ip和端口
  2. redis-cli -a duomu --cluster create --cluster-replicas 1 192.168.56.110:6381 192.168.56.110:6382 192.168.56.111:6381 192.168.56.111:6382 192.168.56.112:6381 192.168.56.112:6382
  3. # 登录redis查询 节点
  4. redis-cli -a duomu
  5. cluster nodes
  6. # 查看redis集群
  7. redis-cli -a duomu --cluster check <任一个ip>:<端口>
  8. # 新增master节点
  9. redis-cli --cluster add-node <new-node-ip:port> <existing-node-ip:port>
  10. # master节点需要重新分配哈希槽
  11. redis-cli -a duomu --cluster reshard <new-node-ip:port>
  12. # 新增slave节点
  13. redis-cli --cluster add-node <new-node-ip:port> <existing-node-ip:port> --cluster-slave
  14. # 只能删除从机,如果要删除master需要将哈希槽转移
  15. redis-cli -a duomu --cluster del-node <del-node-ip:port> <id>
复制代码
5.4. docker部署集群

        后续补上
6. 附录

安装包和配置:https://pan.baidu.com/s/1PeACXeaqQy9tPE89mw0wGQ?pwd=jj9e
学习来源:https://www.bilibili.com/video/BV13R4y1v7sP



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4