redis简介

redis是一种非关系性数据库,单进程工作模型,通常用来做KV存储,同memcached一样,所有数据加载至内存工作因此工作效率非常快,但他会将内存中的数据同步至磁盘当中,使得数据不会像memcached的一样,断电后丢失数据。

自身支持多种数据结构(此处列出常用数据结构)

string:单一的kv存储

hash:支持hash计算后的存储

list:列表存储

set:无序集合

sortset:有序集合

另外redis还支持作为消息队列使用

支持不严格的事务,redis的事务属于将多个语句打包一次性执行,但如果在执行过程中发现单个语句发生了错误,不会进行回滚,而会继续往下执行,但好在redis给我们提供了一个watch功能,如果在一次事务中,事务所需要修改到的数据如果发生了改变,执行时会拒绝执行。在事务执行时,redis不会接收任何其他指令,直到事务完成以后再执行其他操作。

redis像磁盘中同步数据的方式有两种,RDB(snapshot)和AOF(appendonlyfile),RDB类似于我们在mysql中的备份策略,定期的向磁盘进行同步。AOF类似于mysql中的二进制文件一样,将语句追加至文件中。

redis常用场景,一般作为kv存储使用或者在需要使用消息队列时用到。

redis同样支持主从复制,一主多从,并且支持链式复制,主从服务器都异步同步数据,因此同步过程中从服务器仍能接受读请求,主仍能接受读写请求,

同步方式:在从服务链接到主服务器会发出同步指令,主服务器收到后会将内存中所有数据同步至RDB(快照)文件中,在发送给从服务器,从服务器在接受到后加载至内存中,以完成同步。

尽管如此redis还是和mysql一样,面临主节点意外down机后,不能进行自动主从切换。redis直接提供了解决方案,在redis中有个叫sentinel的组件,他负责监控主节点存活状态,如果主节点无法联系,会选举出从节点变更为主节点。

下面演示一下redis主从,以及基于sentinel实现主节点down机后自动切换

准备了3个节点,一主一从一sentinel

做好时间同步,配置好epel源,直接安装

[root@localhost ~]# vi /etc/redis.conf

编辑主服务器配置文件,这里做实验使用只需要修改主配置文件监听在自己的IP地址上。

redis简介

编辑从配置文件添加

redis简介

slaveof  [主ip] [主port]                    #主服务器IP 和端口

启动服务

redis简介

登录主服务器,查看是否以有从服务器,接着可以插入些key 看同步是否成功

redis简介

插入两条数据

redis简介

在从服务器上验证~说明此事同步成功。

接着我们来配置sentinel节点。

[root@localhost ~]# vi /etc/redis-sentinel.conf 

编辑配置文件

修改以下几行

sentinel monitor mymaster 192.168.20.108  6379 1

mymaster指明集群名称,可以随便给,后面是主节点IP和端口,最后的1代表几个sentinel认为主节点down了过后就可以进行切换,可以理解为票数。(避免sentinel节点自己于主节点通讯不正常,但能联系到其他从节点,进行错误的切换,在常用情况下应该配置基数个节点的sentinel以避免发生上诉情况)

sentinel down-after-milliseconds mymaster 1000                #此行可不做修改,但这里定义的是多久联系不到主节点,就认为需要切换,默认是30分钟,太长了,我们这里实验用 修改为1分钟

protected-mode no          #在redis3.2过后添加的安全选项,如果没有BINDip,且没有认证方式启动,会自动启动保护模式,远程登陆进去无法做任何操作,这里我们给他指定为不启用保护模式

daemonize yes                #后台运行

[root@localhost ~]# redis-server /etc/redis-sentinel.conf –sentinel             #启动服务

redis简介

链接至sentinel,并且查看是否有主服务器相应信息,这里看到了已经找到主服务器了,接着我去把主服务器关掉

redis简介

关机后立即之前的从服务器就立即变到主的了~


原创文章,作者:N24_Ghost,如若转载,请注明出处:http://www.178linux.com/71265

(0)
N24_GhostN24_Ghost
上一篇 2017-03-17 15:26
下一篇 2017-03-17 19:28

相关推荐

  • N23 9月底的

    1.linux下文件管理命令 cat 读取文件 或者连接显示touch 建立文件 改变时间 cp 复制文件 -f 强制复制 不论覆盖-r 连同子目录递归处理-l 建立硬链接-s 建立符号连接 rm 删除文件 -r 递归删除 连同子目录也一起干掉-f 强制 删除文件或者目录-d 直接删除目录 file 辨识文件类型 find 查找文件 whereis 查找文件…

    Linux干货 2016-09-25
  • until 练习题

    一、用until实现下列作业 1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。   2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出 3、编写脚本,求100以内所有正整数之和   4、编写脚本,通过p…

    Linux干货 2016-08-17
  • 马哥教育网络班21期+第13周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和u…

    Linux干货 2016-10-17
  • shell脚本编程之if条件判断与for、while、until循环

    一、if语句 语法: if 测试条件1 ; then        分支1 elif  测试条件2; then        分支2 … else&nbsp…

    Linux干货 2015-08-24
  • Linux发展史

    Linux发展史 一、历史 (一)、Unix 1、Unix操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构。 2、最早由KenThompson(汤普逊)、Dennis Ritchie(丹尼斯·里奇,C语言之父,Unix之父)和Douglas McIlroy(麦克罗伊,程式设计师)于1969年在AT&T的贝尔实验室开发。 3、目前它的商标…

    Linux干货 2016-10-14
  • Linux Basic–磁盘分区

    附件: 磁盘管理相关方法.pdf

    Linux干货 2016-11-21

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-07 18:21

    总结的非常好,可以来一个目录结构~~~~加油!!!