zoukankan      html  css  js  c++  java
  • redis的那些事

    持久化 

    redis支持RDBAOF两种持久化方式

     

    The RDB persistence performs point-in-time snapshots of your dataset at specified intervals.

    RDB是一种即时快照的存储方式,定时对数据库进行snapshot

    RDB优点:

    1 RDB对于数据备份非常容易。你可以设置1天或者30天对数据进行一次备份,这样当发生数据灾难的时候能很容易恢复

    2 由于RDB对数据备份时redis只做备份操作,所以备份最大化的使用了redis的性能,同时也导致了对于大的数据集,RDB备份快于AOF

     

    RDB缺点:

    1 如果你的需求只是要知道两个时间段中redis的变化,RDB是弱于AOF

    2 由于RDB经常使用子进程fork()进行数据备份,所以如果当数据比较大的时候,数据备份会比较耗时

     

    AOF优点:

    1 你必须有一个AOFfsync的策略:

    或者是不进行fsync 或者每秒fsync一次,或者每次query查询的时候fsync

    2 AOF只记录修改log,当存储的时候由于某种原因写log失误了,使用redis-check-aof能很好的修复

    3 redis数据太大的时候,AOF可以很好被重写到新的redis

     

    AOF缺点:

    1 AOF通常比RDB

    2 AOFRDB

     

     --------------------------

    流水线

    redis是客户端和服务器端的通信交互TCP协议

     

    当客户端发送请求,服务器端接受请求并发送回复,客户端接收回复,这个过程叫做RTT(Round Trip Time)

    比如如果RTT时间是250微秒,既是服务器端每秒能处理10万个请求,那么,我们只能认为redis每秒处理4个请求

     

    server不需要等待client接收了消息之后再处理新request的技术叫做pipelining(流水线)。这个技术早在几十年前就应用在了各种协议上(比如pop3),redis也很早使用了这个技术。

     

    实验:

    $ (echo -en "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379

    当调用这个例子的时候:

    server一次返回:

    +PONG

    +PONG

    +PONG

     

    而不是返回一次PONG,过了RTT时间再返回PONG,这个例子就说明了redis使用pipelining

     

    注:nc命令说明请看:

    http://www.cnblogs.com/faraway/archive/2008/08/30/1280070.html 

     

    ---------------------------------

    订阅 

     redis支持订阅(subscribe

    当一个client订阅一个或多个变量,其他客户端修改了变量并publish之后,这个客户端会收到消息

     

    例子:

    Client1:

    SUBSCRIBE first second

     

    Client2:

    PUBLISH second Hello

     

    client1显示:

    message

    second

    Hello2

     

     

    redis还支持模式订阅(psubscribe命令)

    PSUBSCRIBE f*

     

    ---------------------------------

    参考文档:

    ---------------------------------

    作者:yjf512(轩脉刃)

    出处:http://www.cnblogs.com/yjf512/

    本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明 

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    linq教程
    linq 多表分组查询统计
    System.Diagnostics.Trace.Listeners
    linq多表join与group
    LINQ的左连接、右连接、内连接
    linq pad
    开源项目
    linq group join
    OWIN OAuth 2.0 Authorization Server
    autofac + owin + webform + mvc + webapi集成demo
  • 原文地址:https://www.cnblogs.com/yjf512/p/2361747.html
Copyright © 2011-2022 走看看