• Redis高级应用


    1.redis密码防护

            给redis服务器设置密码,可以通过redis的配置文件设置密码参数,这样客户端连接到redis服务就需要密码验证,这样可以保护redis服务;

    (1):查看是否设置了密码验证:

    1. config get requirepass
    2. 1) "requirepass"
    3. 2) ""

    (2):通过以下命令来修改该参数:

    1. > config set requirepass "123"
    2. ok
    3. > config get requirepass
    4. (error) NOAUTH Authentication required.

            设置密码验证后必须验证才能进行其他操作:

    1. 127.0.0.1:6379> AUTH 123 OK
    2. 127.0.0.1:6379> CONFIG GET requirepass
    3. 1) "requirepass"
    4. 2) "123"

    #:注意命令设置仅在当前生效,重启服务后失效。

    1. 127.0.0.1:6379> quit
    2. [root@localhost ~]# systemctl restart redis
    3. [root@localhost ~]# redis-cli
    4. 127.0.0.1:6379> CONFIG GET requirepass
    5. 1) "requirepass"
    6. 2) ""

    #:永久生效需要在配置文件中设置,并重启服务。

    1. vim /etc/redis.conf
    2. requirepass 123456
    3. [root@localhost ~]# systemctl restart redis

    2. 数据持久化

            redis为了数据的完整性和持久性,要将内存中的数据同步到磁盘中,这个过程称为持久化操作,下次再启动redis服务时,会把磁盘上面保存的数据重新加载到内存里面。

    (1):常见的持久化方式:

            RDB:基于快照的方式,redis安装一定的周期把内存里面的数据同步到磁盘文件里面。

            可查看配置文件中的持久化实践,一般时间为:

    1. # Save the DB to disk.
    2. #
    3. # save
    4. #
    5. # Redis will save the DB if both the given number of seconds and the given
    6. # number of write operations against the DB occurred.
    7. #
    8. # Snapshotting can be completely disabled with a single empty string argument
    9. # as in following example:
    10. #
    11. # save ""
    12. # save 3600 1
    13. # save 300 100
    14. # save 60 10000

            AOF:基于文件追加,redis会把对redis数据造成更改的命令记录到相关的日志文件里面,然后再一次重启,换行日志文件里面对redis写的操作,达到数据还原。

            先在配置文件中开启持久化:

    1. # Please check https://redis.io/topics/persistence for more information.
    2. appendonly yes //开启持久化
    3. # The name of the append only file (default: "appendonly.aof")
    4. appendfilename "appendonly.aof" // 持久化日志

            备份周期:

    1. # appendfsync always
    2. appendfsync everysec
    3. # appendfsync no
    4. appendfsync always
    5. //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
    6. appendfsync everysec
    7. //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
    8. appendfsync no //完全依赖os,性能最好,持久化没保证

    3.主从同步

    1. 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

    2. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗 余。

    3. 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写 Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

    4. 读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可 根据需求的变化,改变从库的数量;

    5. 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis

     redis主从复制过程:

            例如,设置192.168.188.127为主服务器,设置192.168.188.128为从服务器,进行如下配置,在redis.conf中;

            主服务器:

    bind 192.168.188.127
  • 相关阅读:
    将1亿以下阿拉伯数字转换为大写汉字
    《java面试宝典》之事务常见面试题
    Solidity中的可支付函数是什么?
    无向图欧拉路径问题
    一篇搞定Sentinel-搭建Spring Cloud Alibaba服务组件Sentinel实现服务资源控制
    【VIM】VIm-plug插件
    【MySQL】索引和事物
    一种获得离散型周期数据的变化周期的算法
    ModelCenter—多学科设计优化软件
    学习负载均衡的算法
  • 原文地址:https://blog.csdn.net/AiTTTTTT/article/details/126921440