美文网首页
REDIS高级用法

REDIS高级用法

作者: 超哥__ | 来源:发表于2018-12-18 17:46 被阅读0次

    以下测试均使用redis-cli

    发布与订阅

    普通订阅

    • 第一个客户端执行 SUBSCRIBE first second
    1) "subscribe"
    2) "first"
    3) (integer) 1
    
    1) "subscribe"
    2) "second"
    3) (integer) 2
    
    • 第二个客户端执行 PUBLISH second Hello
    • 此时第一个客户端接收到Hello
    1) "message"
    2) "second"
    3) "hello"
    

    模式匹配订阅

    • 第一个客户端执行 PSUBSCRIBE first.* second.*
    • 第二个客户端执行 PUBLISH second.111 Hello
    • 此时第一个客户端接收到Hello
    1) "pmessage"
    2) "second.*"
    3) "second.111"
    4) "hello"
    

    主从复制

    • 异步复制,每秒一次,不阻塞主&从服务器
    • 一个主服务器,多个从服务器、一个从服务器,多个从服务器
    • 复制功能可以单纯地用于数据冗余(data redundancy), 也可以通过让多个从服务器处理只读命令请求来提升扩展性(scalability): 比如说, 繁重的SORT命令可以交给附属节点去运行
    • 可以通过复制功能来让主服务器免于执行持久化操作: 只要关闭主服务器的持久化功能, 然后由从服务器去执行持久化操作即可
    • 在关闭主服务器上的持久化,并同时开启自动拉起进程的情况下,即便使用Sentinel来实现Redis的高可用性,也是非常危险的。应该禁止主服务器关闭持久化的同时自动拉起从服务器

    系统中运行多个redis实例

    网上很多方案都不够完善,下面给出完全的例子

    cp -rfp /etc/redis.conf /etc/redis_6380.conf
    cp -rfp /etc/init.d/redis /etc/init.d/redis_6380
    mkdir /var/lib/redis_6380 && chown redis.redis /var/lib/redis_6380
    在redis_6380.conf中修改如下内容:
    port 6379 => 6380
    pidfile /var/run/redis.pid => /var/run/redis_6380.pid
    logfile /var/log/redis/redis.log => /var/log/redis/redis_6380.log
    dir /var/lib/redis => /var/lib/redis_6380
    在redis_6380中修改如下内容:
    pidfile="/var/run/redis/redis.pid" => "/var/run/redis/redis_6380.pid"
    lockfile=/var/lock/subsys/redis => /var/lock/subsys/redis_6380
    

    下面进行测试:

    redis-server --port 6379 &
    redis-server --port 6380 &
    终端1:
    redis-cli -p 6379
    set myname lichao
    终端2:
    redis-cli -p 6380
    slaveof 127.0.0.1 6379
    get myname
    => lichao
    

    相关文章

      网友评论

          本文标题:REDIS高级用法

          本文链接:https://www.haomeiwen.com/subject/jgickqtx.html