Redis的环境搭建与相关配置

redis的网络相关配置

  • bind:绑定ip地址,其他机器可以通过此ip地址访问redis,默认绑定127.0.0.1,也可以绑定我们本机的ip地址
  • port:绑定redis占用的端口,默认为6379
  • tcp-keepalive:tcp连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。如果设置为0,则不会进行保活检测

redis的常规配置

  • loglevel:日志级别,开发阶段可以设置成debug,生产阶段通常为notice和warnng
  • logfile:指定日志文件名,如果不指定,Redis只进行标准输出。要保证日志文件所在的目录必须存在,文件可以不存在。还要在redis启动时指定所使用的配置文件,否则配置不起作用
  • databases:配置Redis数据库的个数,默认是16个
  • requirepass:配置Redis的访问密码。默认不配置密码,即访问不需要密码验证。此配置项需要在protected-mode=yes时起作用。使用密码登录客户端:redis-cli -h ip -p 6379 -a pwd

redis的RDB配置

  • 简介:Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis重启会通过加载dump.rdb文件来恢复数据
  • Redis会复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程,来进行持久化。
    整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。
    如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失
  • save :配置复合的快照触发条件,即Redis 在seconds秒内key改变changes次,Redis把快照内的数据保存到磁盘中一次。默认的策略是:
    1分钟内改变了1万次
    或者5分钟内改变了10次
    或者15分钟内改变了1次
    如果要禁用Redis的持久化功能,则把所有的save配置都注释掉
  • stop-writes-on-bgsave-error:当bgsave快照操作出错时停止写数据到磁盘,这样能保证内存数据和磁盘数据的一致性,但如果不在乎这种一致性,要在bgsave快照操作出错时继续写操作,这里需要配置为no
  • rdbcompression:设置对于存储到磁盘中的快照是否进行压缩,设置为yes时,Redis会采用LZF算法进行压缩;如果不想消耗CPU进行压缩的话,可以设置为no,关闭此功能
  • rdbchecksum:在存储快照以后,还可以让Redis使用CRC64算法来进行数据校验,但这样会消耗一定的性能,如果系统比较在意性能的提升,可以设置为no,关闭此功能
  • dbfilename:Redis持久化数据生成的文件名,默认是dump.rdb,也可以自己配置
  • dir:Redis持久化数据生成文件保存的目录,默认是./即redis的启动目录,也可以自己配置

redis的AOF配置

  • 简介:Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
  • Redis以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),
    只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
  • appendonly:配置是否开启AOF,yes表示开启,no表示关闭。默认是no
  • appendfilename:AOF保存文件名
  • appendfsync:AOF异步持久化策略
    always:同步持久化,每次发生数据变化会立刻写入到磁盘中。性能较差但数据完整性比较好(慢,安全)
    everysec:出厂默认推荐,每秒异步记录一次(默认值)
    no:不即时同步,由操作系统决定何时同步
  • no-appendfsync-on rewrite:重写时是否可以运用appendsync,默认no,可以保证数据的安全性
  • auto-aof-rewrite-min-size:设置重写的基准值

redis的事务配置

  • 简介:允许把一组redis命令放在一起,把命令进行序列化,然后一起执行,保证部分原子性。

常用命令:

  • multi:用于标记事务的开始, 将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列
  • exec:在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态。
    如果在把命令压入队列的过程中报错,则整个队列中的命令都不会执行,执行结果报错;
    如果在压队列的过程中正常,在执行队列中某一个命令报错,则只会影响本条命令的执行结果,其它命令正常运行; 当使用WATCH命令时,只有当受监控的键没有被修改时,EXEC命令才会执行事务中的命令;而一旦执行了exec命令,之前加的所有watch监控全部取消
  • discard:清除所有先前在一个事务中放入队列的命令,并且结束事务。
    如果使用了WATCH命令,那么DISCARD命令就会将当前连接监控的所有键取消监控
  • watch key [key …]:当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。如果被监控的key值在本事务外有修改时,则本事务所有指令都不会被执行。Watch命令相当于关系型数据库中的乐观锁
  • unwatch:清除所有先前为一个事务监控的键。如果在watch命令之后你调用了EXEC或DISCARD命令,那么就不需要手动调UNWATCH命令

原理:

  • 如果一组命令中,有在压入事务队列过程中发生错误的命令,则本事务中所有的命令都不执行,能够保证事务的原子性。
    multi
    set k3 v3
    seta kk vv
    set k4 v4
    exec
    如果一组命令中,在压入队列过程中正常,但是在执行事务队列命令时发生了错误,则只会影响发生错误的命令,不会影响其它命令的执行,不能够保证事务的原子性。
    multi
    set k3 v3
    incr k1
    set k4 v4
    exec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值