redis的发布订阅

1. 创建redis配置文件

vim /opt/redis_conf/reids-6379.conf

mkdir /data/6379

redis-server  redis-6379.conf     # 开启redis 6379 服务端

resdis-cli -p 6379   # 进入redis 6379 的客户端  (需要开启6379 下的3个redis客户端)

发布者:

接收者:

持久化存储

1.RDB持久化配置

redis是一个内存型的数据库

断电数据会消失

重启服务数据会消失

重启服务器数据会消失

1. 创建redis配置文件

  1. vim /opt/redis_conf/reids-.conf

写入以下配置

  1. port
  2. daemonize yes
  3. dir /data/
  4. pidfile /data//redis.pid
  5. loglevel notice
  6. logfile "/data/6379/redis.log"
  7. protected-mode yes
  8. dbfilename dbmp.rdb
  9. save
  10. save
  11. save

参数说明:

mkdir /data/6380

redis-server  redis-6380.conf     # 开启redis 6380 服务端

resdis-cli -p 6380   # 进入redis 6380 的客户端

创建几条数据,并使用save命令开启rdb持久化

  1. # 实现持久化和检查持久化生效的过程:
  2. 查看redis8380是否启动
  3.  
  4. netstat -tunlp |grep
  5.  
  6. set name deng
  7.  
  8. save # 持久化保存
  9.  
  10. netstat -tunlp |grep
  11.  
  12. kill # 将该进程杀死,停用redis 服务
  13.  
  14. 查看 redis 数据是否已经保存
  15.  
  16. redis-server redis-.conf # 开启redis6380
  17.  
  18. redis-cli -p # 进入6380 客户端
  19.  
  20. keys *

2.redis AOF持久化

1 修改reids配置文件

  1. vim /opt/redis_conf/redis-6380.con

加入以下两行配置

  1. appendonly yes
  2. appendfsync everysec

保存退出

2 重启redis服务

  1. pkill reids
  2. redis-server /opt/redis_conf/redis-6380.conf

3 验证appendonly.aof文件里面的数据和redis里面的数据是否健在

客户端添加数据:

3 redis不重启,从RDB切换到AOF

1 配置RDB持久化,确保没有AOF的配置

  1. daemonize yes
  2. port
  3. logfile /data//redis.log
  4. dir /data/
  5. dbfilename dbmp.rdb
  6. save #rdb机制 每900秒 有1个修改记录
  7. save #每300秒 10个修改记录
  8. save #每60秒内 10000修改记录

2. 删除上面演示已经持久化储存的文件

3.启动redis服务端

4.检查RDB文件

5 备份RDB文件

6 执行命令,开启AOF持久化

  1. CONFIG set appendonly yes # 开启AOF功能
  2.  
  3. CONFIG SET save "" # 关闭RDB功能

7 验证旧的RDB数据库数据是否转入AOF, 以及AOF持久化文件是否正常写入

redis的主从复制

应用:负载均衡,故障切换,读写分离

1 准备三个redis配置文件

  1. cd /opt/redis_conf
  2.  
  3. redis-.conf # 主数据库master
  4. redis-.conf # 从库slave
  5. redis-.conf # 从库slave

2. 配置文件:

  1. vim /opt/redis_conf/redis-.conf

写入以下配置:

  1. port
  2. daemonize yes
  3. pidfile /data//redis.pid
  4. loglevel notice
  5. logfile "/data/6380/redis.log"
  6. dbfilename dump.rdb
  7. dir /data/
  8. protected-mode no

3 目前这三个配置文件配置一样,只是端口的不同

  1. #可以使用这一条命令通过redis-.conf生成6381和6382的配置文件
  2. sed "s/6380/6381/g" redis-.conf > redis-.conf
  3. sed "s/6380/6382/g" redis-.conf > redis-.conf
    #
    mkdir /data/{6381,8382}

4. 在redis-6381.conf和redis-6382.conf下添加以下配置,使之成为从数据库:

  1. # 添加下面这句到redis-6381.conf和redis-6382.conf配置下
    slaveof 127.0.0.1

5.  确认三个配置文件无误

  1. cat redis-.conf
  2. cat redis-.conf
  3. cat redis-.conf

6 开启这三个redis服务,确保三个服务启动正常

  1. redis-server redis-.conf
  2. redis-server redis-.conf
  3. redis-server redis-.conf

7 查看redis主从数据库的状态

  1. redis-cli -p info replication
  2. redis-cli -p info replication
  3. redis-cli -p info replication

8 验证redis主从复制情况

(1)先验证三个数据库是否能正常连接

主库 6380 :

从库 6381:

从库6382:

9 手动进行主从复制故障切换

(1) 杀掉6380的进程,模拟主库故障

  1. kill -9 进程ID

(2)在6381和6382上手动指定一个主库(我现在指定6382为主库)

(3) 在6382的redis上执行这一行命令

  1. slaveof no one

(4) 在6381上执行以下命令,将原来的指向6380改为指向6382

  1. slaveof no one
  2. slaveof 127.0.0.1

(5) 验证新的主从架构状态

(6) 验证新的主从架构是否可以正常写入数据,同步数据

主库6382 中写入数据:

从库6381 中查看数据:

  1.  

redis的发布订阅、持久化存储、redis的主从复制的更多相关文章

  1. .net core 使用Redis的发布订阅

    Redis是一个性能非常强劲的内存数据库,它一般是作为缓存来使用,但是他不仅仅可以用来作为缓存,比如著名的分布式框架dubbo就可以用Redis来做服务注册中心.接下来介绍一下.net core 使用 ...

  2. Linux(6)- redis发布订阅/持久化/主从复制/redis-sentinel/redis-cluster、nginx入门

    一.redis发布订阅 Redis 通过 PUBLISH .SUBSCRIBE 等命令实现了订阅与发布模式. 其实从Pub/Sub的机制来看,它更像是一个广播系统,多个Subscriber可以订阅多个 ...

  3. redis的发布订阅模式

    概要 redis的每个server实例都维护着一个保存服务器状态的redisServer结构 struct redisServer {     /* Pubsub */     // 字典,键为频道, ...

  4. [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

    [翻译] C# 8.0 新特性 2018-11-13 17:04 by Rwing, 1179 阅读, 24 评论, 收藏, 编辑 原文: Building C# 8.0[译注:原文主标题如此,但内容 ...

  5. python之上下文管理、redis的发布订阅、rabbitmq

    使用with打开文件的方式,是调用了上下文管理的功能 #打开文件的两种方法: f = open('a.txt','r') with open('a.txt','r') as f 实现使用with关闭s ...

  6. 【spring boot】【redis】spring boot 集成redis的发布订阅机制

    一.简单介绍 1.redis的发布订阅功能,很简单. 消息发布者和消息订阅者互相不认得,也不关心对方有谁. 消息发布者,将消息发送给频道(channel). 然后是由 频道(channel)将消息发送 ...

  7. Redisson 分布式锁实现之前置篇 → Redis 的发布/订阅 与 Lua

    开心一刻 我找了个女朋友,挺丑的那一种,她也知道自己丑,平常都不好意思和我一块出门 昨晚,我带她逛超市,听到有两个人在我们背后小声嘀咕:"看咱前面,想不到这么丑都有人要." 女朋友 ...

  8. RedisRepository封装—Redis发布订阅以及StackExchange.Redis中的使用

    本文版权归博客园和作者本人吴双共同所有,转载请注明本Redis系列分享地址.http://www.cnblogs.com/tdws/tag/NoSql/ Redis Pub/Sub模式 基本介绍 Re ...

  9. StackExchange.Redis 使用-发布订阅 (二)

    使用Redis的发布订阅功能 redis另一个常见的用途是发布订阅功能 . 它非常的简单 ,当连接失败时 ConnectionMultiplexer 会自动重新进行订阅 . ISubscriber s ...

随机推荐

  1. DIOCP3-粘包处理

    DIOCP3-粘包处理   什么是粘包: 第一次发送  12345, 第二次发送abcde, 底层socket可能会一次性进行发送12345abcde,或者对方可能一次性进行了接收,那接收的时候,你可 ...

  2. python摸爬滚打之day18----instance, type, issubclass和反射

    1.issubclass(a,b)  ----> 判断a是否是b的子类.  isinstance(a,b)  ----> 判断a这个对象是否是b类型的(可以向上判断, 即考虑继承关系往父类 ...

  3. PyQt5的安装及基本配置

    安装PyQt5 注:Pyqt5只支持python3.5以上版本 Mac安装 Mac上使用编译安装的话,后面使用pyinstaller打包可能会出问题,推荐使用命令行一键安装,Linux如果包管理没有的 ...

  4. 将python代码打包成一个app/exe

    前言 打包的代码通常都需要写一个简单的界面,一般用PyQt来写.用PyQt写界面的方法请戳这里:PyQt5的安装及基本配置    PyQt5教程 python提供了几个用来打包的模块,主要有py2ap ...

  5. 关于12C中optimizer_adaptive_features参数介绍

    optimizer_adaptive_features参数在OLAP数据仓库环境中可以获得较好的效果,实际在重上传轻查询的OLTP系统上,可以关闭这项新功能. 其主要功能是为了在语句执行过程中实时收集 ...

  6. 【Spark-SQL学习之一】 SparkSQL

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  7. Ubuntu编译Android源码步骤

    Android4.4源码编译 需要准备以下文件: 源码包名:x4412_kitkat_rtm.tar.bz2 Jdk版本为jdk1.6.0_27 gcc 4.4 g++ 4.4 第一步:安装Ubunt ...

  8. 使用java进行 AES 加密 解密?

    百度百科是这样定义的: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标 ...

  9. websocket 二合一

    server from flask import Flask, request, render_template from geventwebsocket.handler import WebSock ...

  10. <转>jmeter(二十三)分布式测试

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...