zoukankan      html  css  js  c++  java
  • redis系列之redis是什么

    一、简介

    REmote DIctionary Server(Redis)redis是一个基于内存的单机key/value系统,类似memcached,但支持value为多种形式,包括:字符串(string)、链表(list)、集合(set)、有序集合(sorted set)hash table

    二、特点 

    1 优点

    memcacheMySQL等类似产品比较,Redis有以下几个优点:

    1) 非常丰富的数据结构,且这些数据结构的常见操作均是原子性的;

    2) 高速读写。Memcached提供了CAS命令,可以保证多个并发访问操作同一份数据的一致性问题。 Redis没有提供CAS命令,不过Redis提供了事务的功能,可以保证一串命令的原子性,中间不会被任何操作打断。MYSQL使用了锁,而memcache未使用锁,进而效率极高。总之,Redis用自己实现的事件分离器,代码量很短,没有CAS,没有lock,因而效率非常高。关于memcacheredis的比较,可参考这篇文章:《RedisMemcached的比较》[1]

    2 缺点

    1) 持久化。 Redis直接将数据存储到内存中,可通过两种方式持久化:定时快照(snapshot)和基于语句的追加(Append Only Fileaof)。Snapshot的方法是指每隔一段时间将整个数据库的数据写到磁盘上,很明显,每次均是写全部数据,代价非常高;而aof方法只追踪变化的数据,这类似于mysqlbinlog方法,但追加log可能过大,同时所有操作均要重新执行一遍,恢复速度慢。

    2) 耗内存。尽管Redis对一些数据结构采用了压缩算法存储,但占用内存量还是过高。

     

    [1] RedisMemcached的比较http://tech.it168.com/a2011/0818/1234/000001234403_1.shtml 

     

  • 相关阅读:
    .net com
    Json树递归Js查询Json父子节点
    Angular中使用$watch监听object属性值的变化
    教程
    JS格式化Thu May 12 2016 08:00:00 GMT+0800 (中国标准时间)
    js中获取时间new Date()详细介绍
    select默认空白问题。。
    angular先加载页面再执行事件,特别在动态生成id,然后做echarts等图表
    详解angularJs中自定义directive的数据交互
    Angularjs ng-table的使用(可以加button)以及angularjs学习资料
  • 原文地址:https://www.cnblogs.com/jacksu-tencent/p/3699943.html
Copyright © 2011-2022 走看看