Redis的安全性

因为redis速度很快,所以在一台比较好的服务器下,一个外部用户在一秒内可以进行15W次的密码尝试,这意味着你需要设定非常强大的密码来防止暴力破解。

vim编辑redis.conf文件,找到下面进行保存修改

  #requirepass foobared

  requirepass    ****

重启服务器 pkill redis-server

下次登录需要输入密码。

  输入 auth [密码]

  还有一种直接登录的授权方式,   redis-cli -abhz

主从复制

主从复制

  1 Master可以拥有多个slave

  2多个slave可以连接同一个master外,还可以连接其他的salve

  3主从复制不会阻塞master在同步数据时,master可以继续处理client请求

  4提供系统的伸缩性

主从复制过程:

  1slave与master建立连接,发送sync同步命令

  2master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存

  3后台完成保存后,就将文件发送给slave

  4slave将此文件保存到硬盘上

主从复制配置

  clone服务器之后修改slave的IP地址

  修改配置文件:/usr/local/redis/etc/redis.conf

  第一步:slaveof<masterip><mastport>

  第二步:masterauth<master-password>

使用info查看role角色即可知道是主服务或从服务

哨兵

有了主从复制的实现以后,我们如果相对主从服务器进行监控,那么在redis2.6以后提供了一个“哨兵”的机制,在2.8之后,哨兵功能开始稳定。

哨兵的含义就是监控redis系统的运行状况。其主要功能有两点:

1 监控主数据库和从数据库是否正常运行。

2 主数据库出现故障时,可以自动将从数据库转换为主数据库,实现自动切换。

实现步骤:在其中一台从服务器配置sentinel.conf

  (1)copy文件sentinel.conf到/usr/local/redis/etc中

  (2)修改sentinel.conf

  sentinel monitor mymaster 192.168.1.174 6379 1#名称、ip、端口、投票选举次数

  sentinel down-after-milliseconds mymaster 5000 #默认1s检测一次,这里配置超时5000毫秒为宕机

  sentinel failover-timeout mymaster 9000000

  sentinel parallel-syncs mymaster 2

  (3)启动sentinel哨兵

  /us/local/redis/bin.redis-server /usr/local/redis/etc/sentinel.conf --sentinel &

  (4)查看哨兵相关信息命令

  /usr/local/redis/bin/redis-cli -h 192.168.1.175 -p 26379 info Sentinel

  (5)关闭主服务器查看集群信息

  /usr/local/redis/bin/redis-cli -h 192.168.1.175 -p 6379 shutdown

持久化机制

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。

redis持久化的两种方式。

1 snapshotting(快照)默认方式,将内存中以快照的方式写入到二进制文件中,默认为dump.rdb。可以通过配置设置自动做快照持久化的方式。配置redis在n秒内如果超过m个key则修改就自动做快照。

snapshotting 设置:

  save 900 1 #900秒内,如果超过1个key被修改,则发起快照保存

  save 300 10 #300秒内,如果超过10个key被修改,则发起快照保存

2 append-only file(缩写aof) 的方式,(类似于oracle日志)由于快照方式是在一定时间间隔做一次,所以可能发生redis意外down的情况就会丢失最后一次快照后的所有修改的数据,aof比快照方式有更好的持久化,是因为在使用aof时,redis会将每一个收到的写命令都通过write函数追加到命令中,当redis重新启动时,会重新执行文件中保存的写命令来在内存中重建这个数据库的内容。这个文件在bin目录下:

appendonly.aof. aof不是立即写到硬盘上,可以通过配置文件修改强制写到硬盘中。

aof设置:

  appendonly yes //启动aof持久化方式有三种修改方式

  #appengfsync always //收到写命令就立即写入到磁盘,效率最慢,但是保证完全的持久化

  #appengfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了折中

  #appengfsync no //完全依赖os 性能最好,持久化没保证

发布与订阅消息

redis提供了简单的发布订阅功能

使用subscribe[频道] 进行订阅监听

使用publish[频道][发布内存] 进行发布消息广播

登录redis客户端,就能发布相应信息。

redis其他相关知识的更多相关文章

  1. redis的相关知识

    1. 依赖包安装 pom.xml 加入: <!-- redis cache related.....start --> <dependency> <groupId> ...

  2. Redis相关知识整理

    Redis相关知识整理 1. Redis和MySQL的区别?a).mysql是关系型数据库,而redis是NOSQL,非关系型数据库.mysql将数据持久化到硬盘,读取数据慢,而redis数据先存储在 ...

  3. Redis的好处知识

    参考文章 http://www.cnblogs.com/wupeiqi/articles/5132791.html 使用Redis有哪些好处? () 速度快,因为数据存在内存中,类似于HashMap, ...

  4. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  5. 移动WEB像素相关知识

    了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...

  6. listener监听器的相关知识

    从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...

  7. UIViewController相关知识

    title: UIViewController 相关知识date: 2015-12-13 11:50categories: IOS tags: UIViewController 小小程序猿我的博客:h ...

  8. 【转】java NIO 相关知识

    原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...

  9. NSString使用stringWithFormat拼接的相关知识

    NSString使用stringWithFormat拼接的相关知识 保留2位小数点 1 2 3 4 //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSSt ...

随机推荐

  1. 焊接关节(Weld Joint)

    package{ import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2Body; import Box2D.Dynamics.Joints ...

  2. 一种比较low的linux的hung分析

    在调试一个功能的时候,发现了两种hung,以前认为的hung肯定是softlock导致的,后来才发现不一定要有lock这种结构,但是有类似于锁的功能的时候,也可能触发hung,为了避免大家走弯路,故记 ...

  3. ReactiveX 学习笔记(12)调度器

    Schedulers, threading and testing 本文的主题为调度器,多线程以及测试. RxJava操作符(六)Utility SubscribeOn / ObserveOn Sub ...

  4. python 函数返回值笔记

    今天学习python时候学习到闭包和柯里化 感觉看概念时候不好理解,自己写下大概就明白点了 柯里化如下 定义一个加法函数 def add(x, y): return x + y 这是没有柯里化之前的函 ...

  5. shell编程小技巧(命令篇)

    本文主要介绍shell编程中一些好用的命令或者一些常见命令但比较少用却又好用的参数,目的是希望可以提高编码效率. df命令 常用命令 df / df -k / df -m / df -H / df - ...

  6. [cocos2d-x]认识游戏开发(图)

    FreeMind的.mm文件下载: http://yunpan.cn/cfL3cm6CZkMSt (提取码:e01a)

  7. 29.Junit测试框架.md

    目录 作用 使用 单个对象的测试 有步骤的测试 注意 作用 用于简化测试,可以对方法,类,包等范围测试 使用 单个对象的测试 在需要测试的方法上加注解@Test,选中方法,运行里选择junit执行 同 ...

  8. week5 04 npm run build

    上期 我们完成了nodeserver的创建 用的是express genrealtor那个工具 我们在server端执行 起来了 然后我们改一下 删一下 我们觉着暂时没用的东西 首先去app.js程序 ...

  9. JAVAWEB 一一SpringMVC(XML配置)

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  10. ArcGIS自定义工具箱-判断字段值是否相等

    ArcGIS自定义工具箱-判断字段值是否相等 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:判断两个字段值是否相等 使用方法: 结果: 联系方式:谢老师,13 ...