Redis【3】其他部分~

  • Java连接VMware的Redis:ping()返回PONG
    1. 要可以ping通VMware地址
    2. 端口号要正确、默认6379
    3. VMware中的防火墙原因、需添加6379端口号的防火墙:
      • vim /etc/sysconfig/iptables
      • 进入之后 按 I 插入一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
      • 按 ESC 输入 :wq 退出.然后重启服务 service iptables restart
    4. #注释掉redis.conf中的 bind 127.0.0.1
    5. 以上全部完成如果报:DENIED等一大堆错误,就是说要设置密码,最简单就是把redis.conf中 protected-mode yes 改为no
    6. 完成以上内容就可以jedis.ping()返回PONG了.
  • Redis设置密码
    • CONFIG SET requirepass "123456" 这里把密码设置成了 123456
    • 需要jedis连接时,需要输入jedis.auth("123456")
  • Redis事务
    1. discard 放弃事务. exec 执行. multi 开启.unwatch 取消监控. watch 监控.
    2. 正常执行:multi ,入队,exec执行
    3. 放弃事务:multi ,入队,discard取消
    4. 全体连坐:multi ,入队时报错,exec时全部挂掉
    5. 冤头债主:multi ,入队时不报错,exec时互不影响
    6. watch监控:CAS(Check And Set),watch [key]监控一个或多个key,事务执行之前做过key有改动,事务被打断,unwatch取消watch监控的所有key
  • RDB与AOF(优先加载AOF)
    • RDB(Redis DataBase)(dump.rdb)
      • 是什么:能够在指定的时间间隔对你的数据进行快照储存,保存RDB文件时,父进程fork一个子进程,接下来的工作全部由子进程来做,可以最大化Redis性能
      • save格式:save 秒数 改变次数
      • 三种保存方式,会产生rdb文件
        1. save命令保存,只保存数据,其他的阻塞
        2. bgsave命令保存,异步保存,保存数据的同时也可以做其他工作
        3. flushall也可以保存,但是数据是空,无意义
      • 如何恢复:将备份文件(dump.rdb)移动到redis安装目录并启动服务即可
      • 优势:速度快,适合对大规模数据恢复,对数据完整性和一致性要求不高
      • 劣势:内存中被克隆了一份,占空间;在一定间隔时间做一次备份,如果意外down掉的话,就会丢失最后一次的所有修改
    • AOF(Append Only File)(appendonly.aof)
      • 是什么:以日志形式来追加记录每一个写操作,恢复需要根据日志文件的命令从头到尾执行一次
      • appendfsync 同步方式
        1. 修改同步always:同步持久化,每次发生改变都会写入磁盘,性能差,完整性好
        2. 每秒同步everysec:默认,异步操作,如果一秒内宕机,有数据丢失
        3. 不同步no:关闭
      • 启动、修复、恢复
        1. 启动:修改默认appendonly no 改为 yes
        2. 修复:Redis-check-aof --fix进行修复
        3. 恢复:重启Redis然后重新加载
      • 优势:可以灵活设置同步方式修改同步,每秒同步,不同步
      • 劣势:相同数据aof要远大于rdb文件,恢复速度慢与rdb,aof运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同
原文地址:https://www.cnblogs.com/taopanfeng/p/10882332.html