安装

  1. wget http://download.redis.io/releases/redis-3.0.5.tar.gz
  2. tar -zxvf redis-3.0.5.tar.gz
  3. cd redis-3.0.5
  4. make
  5. make PREFIX=/opt/moudles/redis install

命令脚本

  1. cd /opt/moudles/redis/bin
  2. redis-benchmark 压力测试工具
  3. redis-check-aof 检查AOF日志文件
  4. redis-check-dump 检查RDB快照文件
  5. redis-cli 客户端
  6. redis-sentinel 哨兵,实现主从复制的HA(2.4之后版本)
  7. redis-server 启动和停止redis server

核心配置文件

  1. 从源码中拷贝到安装目录
  2. cd /opt/moudles/redis
  3. mkdir conf
  4. cp /opt/moudles/redis-3.0.5/redis.conf conf/
  5. 1. port 6379
  6. 2. daemonize no # 是否以后台运行的方式启动redis
  7. bin/redis-server conf/redis.conf # 启动redis
  8. ps -ef|grep redis
  9. bin/redis-cli

事务

Oracle会自动开启事务,其本质是只要写入到日志就算事务提交成功。

Oracle内存中维护一个检查点队列,保存的都是脏数据(还没有写入到硬盘文件上的数据)

redis的事务,把事务中每条命令都写入到队列,最后再提交

  1. MULTI
  2. INCRBY foo 1
  3. DECRBY bar 1
  4. EXEC

如果写入到队列,还没有执行EXEC,其中某个key已被修改,这种场景事务不应该被提交成功;则需要WATHCH监视key:

  1. WATCH foo
  2. MULTI
  3. INCRBY foo 1
  4. DECRBY bar 1
  5. EXEC

消息机制

  1. 消息可以是字符串也可以是对象
  2. 消息类型:点对点QUEUE、群发广播TOPIC
  1. publish 频道的名称 消息的内容
  2. psubscrible 可以使用通配符,接收多个频道的消息

redis主从复制

  1. 是主从架构,就存在单点故障的问题
  2. 作用:
    • 实现读写分离:默认主节点负责写,从节点负责读
    • 实现任务分离:主节点不再负责生产RDB和AOF文件,由从节点产生

主从架构模型

星型模型(使用较多) - 效率高 - HA切换复杂

线型模型 - 效率低 - HA切换方便

主: 修改master的redis.conf

  1. 关闭RDB
  2. # save 900 1
  3. # save 300 10
  4. # save 60 10000
  5. 关闭AOF
  6. appendonly no

从6380: 修改slave的redis6380.conf

  1. port 6380
  2. dbfilename dump6380.rdb
  3. appendfilename "appendonly6380.aof"
  4. slaveof 主节点地址

从6381: 修改slave的redis6381.conf

  1. port 6381
  2. dbfilename dump6381.rdb
  3. appendfilename "appendonly6381.aof"
  4. slaveof 主节点地址
  5. # 如果是单机模拟,slaveof要指定ip地址,如果是阿里云服务器,需要在控制台开放安全组规则(端口)6379、6380、6381,包括下文中的哨兵:26379

启动:

  1. bin/redis-server conf/redis6379.conf
  2. bin/redis-server conf/redis6380.conf
  3. bin/redis-server conf/redis6381.conf
  4. bin/redis-cli -p 6379
  5. bin/redis-cli -p 6380
  6. bin/redis-cli -p 6381

哨兵

  1. redis2.4以后支持,在这之前可以借助zookeeper实现HA
  2. 启动三个实例:

哨兵核心配置文件:sentinel.conf

  1. cd /opt/moudles/redis
  2. cp /opt/moudles/redis-3.0.5/sendtinel.conf conf/

关键参数配置:

  1. port: 26379
  2. sentinel monitor <master-name> <ip> <redis-port> <quorum>
  3. - <master-name>:主机别名
  4. - <ip> <redis-port>:ip和端口
  5. - <quorum>:几个哨兵(一般至少需要2个)
  6. sentinel auth-pass <master-name> <password>
  7. > 如果主节点配置了密码,在这里配置哨兵连接主节点的密码
  8. sentinel down-after-milliseconds <master-name> <milliseconds>
  9. > 默认:sentinel down-after-milliseconds mymaster 30000
  10. > 如果30秒没有收到主节点的心跳,将会进行主节点切换
  11. sentinel parallel-syncs mymaster 1(重要)
  12. 这个参数一定不能太大,选举新的主节点后,允许同时连接的从节点的个数
  13. - Default is 3 minutes.
  14. sentinel failover-timeout mymaster 180000
  15. 默认如果在3分钟内HA没有切换成功,则认定切换失败

启动:

  1. bin/redis-sentinel conf/sentinel.conf

  2. kill 杀掉Master进程,模拟宕机;(如果是在一台机器上部署,配置一个哨兵才可以看到具体切换的日志信息)

代理分片

哨兵是针对主节点,通过代理分片可以实现多个从节点之间负载均衡。

安装 nutcracker-0.3.0.tar.gz

wget https://github.com/twitter/twemproxy/archive/master.zip

需要编译安装:

详见:

https://www.cnblogs.com/kevingrace/p/5685401.html

配置

  1. cd /opt/moudles/redisproxy
  2. mkdir conf
  3. cp /opt/moudles/nutcracker-0.3.0/conf/nutcracker.yml conf/
  4. servers: //这里配置了两个分片
  5. - 182.48.115.237:6379:1
  6. - 182.48.115.238:6379:1

检查配置:

  1. ./nutcracker -t conf/nutcracker.yml

启动代理:

  1. ./nutcracker -d -c conf/nutcracker.yml
  2. # 使用redis-cli直接连接到代理即可:
  3. bin/redis-cli -h 代理ip -p 22121

Redis主从、事务、哨兵、消息、代理分片的更多相关文章

  1. 关于redis主从|哨兵|集群模式

    关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...

  2. 自动配置redis主从和哨兵

    redis shell  每次创建redis主从和哨兵服务,文件夹要复制好几个,配置文件改一大堆.繁琐还容易出错,就想通过shell脚本自动帮我配置好端口以及文件,下面就是脚本内容: redis-to ...

  3. redis主从|哨兵|集群模式

    关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...

  4. Redis 主从、哨兵Sentinel、Jedis

    Redis 主从.哨兵Sentinel.Jedis 2017年02月15日 15:52:48 有且仅有 阅读数 6183 文章标签: redis主从sentineljedis 更多 分类专栏: 7/1 ...

  5. docker部署redis主从和哨兵

    docker部署redis主从和哨兵 原文地址:https://www.jianshu.com/p/72ee9568c8ea 1主2从3哨兵 一.前期准备工作 1.电脑装有docker 2.假设本地i ...

  6. docker安装redis主从以及哨兵

    docker安装redis主从以及哨兵 本文使用docker在四台机器上部署一主二从三哨兵的Redis主从结构. 服务器配置 192.168.102.128 主节点 centos7.5 192.168 ...

  7. redis 主从、哨兵、集群

    出处: redis主从复制和哨兵 Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式 一.Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步 ...

  8. redis 主从同步&哨兵模式&codis

    主从同步 1.CPA原理 1. CPA原理是分布式存储理论的基石: C(一致性):   A(可用性):  P(分区容忍性); 2. 当主从网络无法连通时,修改操作无法同步到节点,所以“一致性”无法满足 ...

  9. Redis主从、哨兵、集群

    主从 命名设置:>6380 slaveof 127.0.0.01 6379 slaveof on one----------配置:-- 注意一点: 一定开启rdb,不能使用aof从节点配置:主节 ...

  10. redis主从配置+哨兵模式

    1.搭建redis主从,一个master两个slave,加一个哨兵监听(sentinel),可以新建三个虚拟机,模拟环境,我的电脑没那么多虚拟机,就在一台虚拟机上弄的. 2.安装redis,如果是三台 ...

随机推荐

  1. java-selenium(二)富文本编辑框的处理

    首先先看一下什么是富文本编辑框 HTML源码 思路:首先先进入到iframe中,再用js写,最后切出iframe 如果想要换行可以在换行的地方加上<br> 如果添加的文本中包含单引号.双引 ...

  2. 如何让mysql的自动递增的字段重新从1开始呢?(

    数据库表自动递增字段在用过一段时间后清空,还是继续从清空后的自动编号开始.如何才能让这个字段自动从1开始自动递增呢? 下面两个方法偶都试过,很好用: 1 清空所有数据,将自增去掉,存盘,在加上自增,存 ...

  3. 转: Servlet-jsp从入门到精通 1~5

    评注: 来自简书,内容很简要. http://www.jianshu.com/p/d718a5f4a850 (一) http://www.jianshu.com/p/06efc32c10cf   (二 ...

  4. 开发ionic准备之安卓模拟器设置(2)

    发现这个安卓模拟器设置屏幕还不能太大,太大显示不全,然后整个模拟器不能拖动,所以尽量不要设置太大的分辨率 ,如下即可 如果选安卓4.4然后勾选了其他下面的ok还不能点击的话,这下要去sdk manag ...

  5. 小猪的Git使用总结

    小猪的Git使用总结 文件夹 小猪的Git使用总结 安装配置与文档 下载安装 文档教程相关 概念 Git的四个组成部分 文件的几个状态 Git与SVN版本号版本号控制存储差异 每次Commit时仓库中 ...

  6. 关于\r和\n的一些问题总结

    \r表示"回车"(carriage return).\n表示"换行"(line feed),在Windows系统下.输入回车键会自己主动变成\r\n 相同的,在 ...

  7. Python:Dom生成XML文件(写XML)

    http://www.ourunix.org/post/327.html 在python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文 ...

  8. Windows键

    Windows键+D: 最小化或恢复windows窗口   Windows键+U: 打开“辅助工具管理器”    Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置 Windows ...

  9. visual studio 2010 LNK1123解决方式

    ------------------------------------------------------------Lysen----------------------------------- ...

  10. 电路板上为何要有孔洞?何谓PTH/NPTH/vias(导通孔)

      推荐文章:PCBA大讲堂:用数据比较OSP及ENIG表面处理电路板的焊接强度 如果你有机会拿起一片电路板,稍微观察一下会发现这电路板上有着许多大大小小的孔洞,把它拿起来对着天花板上的电灯看,还会发 ...