• resid入门笔记(二)


    本节介绍redis 消息订阅   密码  持久化  主从配置
     
    首先我对消息订阅理解的不深,应该说仅知道概念吧
    发送消息  cctv1 发送 hello   cctv2 发送 ‘你好’
    client1 监听cctv1 cctv2  都收到了消息  ccvt2是因为编码的原因显示的十六进制
    client2 监听cctv1
     
    密码方面
    设置密码有两种方法,一种是修改配置文件
    # requirepass foobared  修改为
    requirepass password
     
    然后重启;
    另一种方法是在redis-cli 设置(redis重启会失效)
    使用config set requirepass "password"
    认证登录也有两个方法
    一个是 进入客户端 但是不能运行其他命令
    auth password  认证 如上图
    另一种是
    redis-cli -h 127.0.0.1 -p 6379 -a password
     
    持久化方面
    由于redis数据完全在内存中,所以宕机的话,所有的数据就完了,那么持久化久比较重要了
    redis有两种持久化策略
    第一种
    RDB方式(默认)
    RDB方式的持久话是通过快照(snapshotting)完成的当符合一定条件时,就会触发快照动作
    redis.com  配置文件中有三种预置的配置
    save 900 1           #900s内有至少1个键被更改则触发快照
    save 300 10         #300s内有至少10个键被更改则触发快照
    save 60 10000     #60s内有至少10000个键被更改则触发快照
    只需要满足一个条件就会触发快照
     
    redis实现快照的过程
    1. redis使用fork函数复制一份当前进程(父进程)的副本(子进程);
    2. 父进程继续接收并处理客户端发来的命令,而子进程开始将内存中的数据写入硬盘中的临时文件;
    3. 当子进程写入完所有数据后会用该临时文件替换旧的RDB文件,至此一次快照操作完成。

    在执行fork的时候操作系统(类Unix操作系统)会使用写时复制(copy-on-write)策略,即fork函数发生的一刻父子进程共享同一内存数据,当父进程要更改其中某片数据时(如执行一个写命令 ),操作系统会将该片数据复制一份以保证子进程的数据不受影响,所以新的RDB文件存储的是执行fork一刻的内存数据。

     
    redis在进行快照的过程中不会修改RDB文件,只有快照结束后才会将旧的文件替换成新的,也就是说任何时候RDB文件都是完整的。这使得我们可以通过定时备份RDB文件来实 现redis数据库备份。RDB文件是经过压缩(可以配置rdbcompression参数以禁用压缩节省CPU占用)的二进制格式,所以占用的空间会小于内存中的数据大小,更加利于传输。
     
    除了自动快照,还可以手动发送SAVE或BGSAVE命令让Redis执行快照,两个命令的区别在于,前者是由主进程进行快照操作,会阻塞住其他请求,后者会通过fork子进程进行快照操作。 redis启动后会读取RDB快照文件,将数据从硬盘载入到内存。根据数据量大小与结构和服务器性能不同,这个时间也不同。通常将一个记录一千万个字符串类型键、大小为1GB的快照文件载入到内 存中需要花费20~30秒钟。 通过RDB方式实现持久化,一旦redis异常退出,就会丢失最后一次快照以后更改的所有数据。
     
    第二种
    AOF方式
    默认情况下redis没有开启AOF(append only file)方式的持久化,可以在redis.conf中通过appendonly参数开启:
         appendonly yes
    在启动时redis会逐个执行AOF文件中的命令来将硬盘中的数据载入到内存中,载入的速度相较RDB会慢一些
     
    开启AOF持久化后每执行一条会更改redis中的数据的命令,redis就会将该命令写入硬盘中的AOF文件。AOF文件的保存位置和RDB文件的位置相同,都是通过dir参数设置的,默认的文件名是appendonly.aof,可以通过appendfilename参数修改:
     
    appendfilename appendonly.aof
    

    配置redis自动重写AOF文件的条件

    auto-aof-rewrite-percentage 100  # 当目前的AOF文件大小超过上一次重写时的AOF文件大小的百分之多少时会再次进行重写,如果之前没有重写过,则以启动时的AOF文件大小为依据
    auto-aof-rewrite-min-size 64mb   # 允许重写的最小AOF文件大小
    
    

    配置写入AOF文件后,要求系统刷新硬盘缓存的机制

    # appendfsync always   # 每次执行写入都会执行同步,最安全也最慢
    appendfsync everysec   # 每秒执行一次同步操作
    # appendfsync no       # 不主动进行同步操作,而是完全交由操作系统来做(即每30秒一次),最快也最不安全
    
    
     
    redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。此时重新启动redis后redis会使用AOF文件来恢复数据,因为AOF方式的持久化可能丢失的数据更少
     
    当redis服务器挂掉时,重启时将按照以下优先级恢复数据到内存:
         如果只配置AOF,重启时加载AOF文件恢复数据;
         如果同时 配置了RBD和AOF,启动是只加载AOF文件恢复数据;
         如果只配置RBD,启动是讲加载dump文件恢复数据。
         
     
    redis主从方面
    redis主从还是比较简单的,配置文件中设置一下就行了
    slaveof 127.0.0.1 6379  设置master的IP地址还有端口
    masterauth masterpassword  如果master有密码的话,加上这个设置
     
  • 相关阅读:
    UIView常见方法总结
    ios UIview And Button TomCat
    (转)OC各种数据类型之间的转换方法
    8个改变让大脑变年轻
    (转)UIImageView响应点击事件
    ios UI 图片排列(简单实现)
    ios UIImage
    ios UIView 按钮
    html第一天--html常用标签
    工具软件类
  • 原文地址:https://www.cnblogs.com/cuizhipeng/p/5116782.html
Copyright © 2020-2023  润新知