Redis的相关安装

举报
技术菜 发表于 2021/09/09 09:49:56 2021/09/09
【摘要】 redis的安装,包括window,linux,集群,主从,哨兵、布隆过滤器

Redis

redis思维导图

redis知识点总结(含面试问题整理) | ProcessOn免费在线作图,在线流程图,在线思维导图


Windows(解压版)

  1. 通过以下地址下载redis解压版文件https://github.com/MicrosoftArchive/redis/releases

    image-20210902114120113

  2. 下载解压到本地 D:\Server\Redis-x64-3.2.100

  3. 执行cmd命令,进行cmd窗口

     redis-server.exe redis.windows.conf 
     可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的参数。
  4. 安装redis服务到windows服务

     redis-server --service-install redis.windows.conf
  5. 在windows的任务管理器查看 是否添加服务成功

image-20210902114506433.png

  1. 后面就可以直接通过启动服务相关命令启动了

     redis-server --service-start  # 启动redis服务
     redis-server --service-stop   # 停止redis服务

Linux

安装gcc环境,yum install gcc


  1. https://redis.io/download redis官网下载最新版本

  2. 上传redis.tar.gzsoftware目录下

  3. 执行解压操作

     tar -zxvf redis.6.2.1.tar.gz -C /opt/module
     mv redis.6.2.1 redis
  4. 进入redis目录cd redis

  5. 执行make命令

  6. 如果make执行不报错,表示已经安装成功了。

  7. 启动redis-server

     src/redis-server  # 启动redis服务端
     src/redis-cli    # 启动redis-客户端
  8. 正规启动方式

     # 1.备份redis.conf
     cp /opt/module/redis/redis.conf /myredis
     # 2. 修改/myredis/redis.conf
     daemonize no 改为 yes
     ​
     # 3.启动redis
     redis-server /myredis/redis.conf

布隆过滤器

前提需要先安装好 redis

  1. 查看redis版本

     redis-server -v
     # 6.2.1
  2. 下载布隆过滤器

 https://github.com/RedisLabsModules/rebloom/archive/v2.2.6.tar.gz
  1. 下载上传到 software目录下。

  2. 解压、编译

     tar -zxvf redisbloom.tar.gz -C /opt/module
     cd /opt/module
     mv redisbloom2.2.6  redisbloom # 可选
     cd redisbloom
     make
  3. 只要能看到 so文件就可以。

image-20210908094257450.png

  1. 关闭当前redis实例。

  2. 修改redis.conf文件,配置MODULES

    image-20210908101129849.png

  3. 重启redis,执行bf.add user aaa,如果可以成功,说明布隆过滤器安装成功了。

  4. 常见命令

 bf.add key v
 bf.madd key v v1 v2 v3
 bf.exists key v
 bf.mexists key v v1 v2

多个redis

主从复制(一主多从)

一个主多个从,主节点(Master)以写为主,从节点(slave)只能读

优点:读写分离、容灾快速恢复

image-20210906160749438.png

详细配置:(模拟测试环境,一主二从)

  1. 新建多个redis.conf

 vim redis6379.conf
 vim redis6380.conf
 vim redis6381.conf
  1. 填写以下内容

 # redis6379.conf
 include redis.conf
 pidfile /var/run/redis_6379.pid
 port 6379
 dbfilename dump6379.rdb
 daemonize yes
 ​
 # redis6380.conf
 include redis.conf
 pidfile /var/run/redis_6380.pid
 port 6380
 dbfilename dump6380.rdb
 daemonize yes
 ​
 # redis6381.conf
 include redis.conf
 pidfile /var/run/redis_6381.pid
 port 6381
 dbfilename dump6381.rdb
 daemonize yes
  1. 依次启动三台redis

 src/redis-server myredis/redis6379.conf
 src/redis-server myredis/redis6380.conf
 src/redis-server myredis/redis6381.conf
  1. 查看进程 ps -ef | grep redis

  2. info replication 查看主从复制相关的信息

  3. 从库绑定主库,在从库主机上配置 slaveof ip port

     slaveof 127.0.0.1 6379 # 绑定6379为master
  4. 测试 从节点 写入,会提示从节点只能读取。

哨兵模式

通过哨兵节点们监控主节点的在线状态,如果主节点离线,从他的从节点中选举一个作为新的主节点。

image-20210906170458425.png

详细配置:(一主二从一哨兵)

  1. 按照主从复制配置好 一主二从

  2. /myredis目录下新建sentinel.conf文件,名字不能错

  3. 在文件中填写以下内容

     sentinel monitor mymaster 127.0.0.1 6379 1 
     # mymaster 表示为监控对象起的名称   1 为至少有多少个哨兵同意迁移的数量
     ​
     多个这么配
     # redis-sentinel-1.conf
     port 26379
     daemonize yes
     logfile "26379.log"
     sentinel monitor mymaster 127.0.0.1 6379 2
     ​
     # redis-sentinel-2.conf
     port 26380
     daemonize yes
     logfile "26380.log"
     sentinel monitor mymaster 127.0.0.1 6379 2
     ​
     # redis-sentinel-3.conf
     port 26381
     daemonize yes
     logfile "26381.log"
     sentinel monitor mymaster 127.0.0.1 6379 2
  4. 启动哨兵

 redis-sentinel /myredis/sentinel.conf

image-20210906171139581

  1. 哨兵启动端口

  2. 监听以6379为主机的主机组

  3. 由于主节点6379断掉了,重新选举 6381节点作为主节点。


slave-priority 100 : 设置 主机的优先级,优先级越高值越小。

image-20210906171421679.png

redis集群
  1. 清除redis的 dump 和 aof文件,包括其他的conf文件

    image-20210907162610583.png

  2. 在myredis目录下创建六个配置文件

 vim redis7000.conf/redis7001.conf/redis7002.conf/redis7003.conf/redis7004.conf/redis7005.conf
 ​
 # 内容如下,端口动态修改
 daemonize yes
 port 7000
 pidfile /var/run/redis_7000.pid
 cluster-enabled yes
 ​
 cluster-config-file node-7000.conf
 ​
 cluster-node-timeout 5000
 appendonly no
 ​
  1. 执行命令依次启动这几个redis

 src/redis-server myredis/redis7000.conf 
 src/redis-server myredis/redis7001.conf 
 src/redis-server myredis/redis7002.conf 
 src/redis-server myredis/redis7003.conf 
 src/redis-server myredis/redis7004.conf 
 src/redis-server myredis/redis7005.conf 
 ​
  1. ps -ef | grep redis 确保服务正常启动

    image-20210907163032869.png

  2. 通过命令将多个redis命令组成集群。

     src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
     # --replicas 1 一台主机 一台丛机
     ​
  3. 如果成功显示如下

    image-20210907163323196.png

  4. 通过客户端连接集群

     redis-cli -c -p 7000 # -c表示以集群方式
     ​
     对于集群而言,不同键的数据(hash后结果)可能放在不同的redis节点上,所以有时候会出现 redirected操作,将数据写到其他节点。
     ​
     {} 通过 {} 定义组的概念,将其放到一个slot中取
     mset k1{cust} v1 k2{cust} v2
  5. 报错处理:

    [ERR] Node is not empty. Either the node already knows other nodes

    https://blog.csdn.net/weixin_44829930/article/details/117558512

基于客户端分配

基于代理服务器分片

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。