redis学习小结

redis短小精悍,系统中的瑞士军刀。研究了它的源代码,收获颇多。

1:网络框架

2:各种数据结构的精巧实现

3:持久化

4:复制

 

网络框架

      redis网络框架蛮简单的,redis自己实现了一个事件库,总的框架是:基于事件的单进程。一般大家都觉得现在服务器都是多进程或多线程的,单进程的性能不行。但redis恰恰不同,他就是单进程,而且性能很好。我个人觉着原因有下面几点:

1、redis的内存结构非常复杂,多线程不可避免要加锁,加锁是很大的开销,而单进程避免了这。

2、redis处理的数据的特点,redis所有数据都在内存中,而且每条数据一般很小的,这样每次访问或查找数据花费的时间很少的,所以在服务端串行处理也行得通。

 

各种数据结构的精巧实现

       这是redis最具有特色的地方,redis不当当是key-value,它也实现了其它的数据结构list, hash,set,sort set。实现这些数据结构,并不难,难得是怎样用最少的内存空间来实现这些结构。比如:“123456”这个字符串存储需要6个字节(不算0),而123456这个数只需要4个字节,redis就会把“123456”这样的当作整数存储;在hash表中,如果hash表中的item很少,其实就没必要用hash表在存储,因为一个hash表的额外开销大,对于hash表中item很少的情况,直接使用顺序表存储,这种情况,顺序表中查找也是很快的。这样的技巧在redis用的很多,其目的就是尽可能减少内存使用。

 

持久化

http://redis.io/topics/persistence

持久化有两种方式:RDB和AOF(append of file)

RDB就是把数据库把每个时候的镜像写到磁盘上,这种优点是:服务器加载数据快,传输效率高;缺点是肯能会丢失数据,而且耗时。

AOF就是当对数据库修改时,就记录下来。

复制

http://redis.io/topics/replication

转载于:https://www.cnblogs.com/jiejnan/archive/2012/08/16/2642212.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值