zoukankan      html  css  js  c++  java
  • redis其他相关知识

    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客户端,就能发布相应信息。

  • 相关阅读:
    单例模型
    数据库7 索引
    数据库6.高级
    数据库5 不想改
    绑定方法与非绑定方法 反射 内置方法
    组合 封装 多态
    面向对象之继承
    面向过程编程
    logging hashlib 模块
    pickle json xml shelve configparser模块
  • 原文地址:https://www.cnblogs.com/shmilyToHu/p/7397924.html
Copyright © 2011-2022 走看看