redis实战中文版pdf2.2.5 mset242.2.6 msetnx252.2.7get..…….…..….…..…….……,252.2.8 getset.,…,252.2.9 getrange262.2.10mget.…,…262.2.11inCr2.2.2 incrby…………2.2.13decr2.,2.14 decry…………2.2.15 append...282.2.16 strlen2823 hashes类型及操作12,3. 1 hset292.3.2 hsetnx,…292.3.3 hmset.…292.3.4 get302.3.5 hmget....……302.3.6 hincrby.….,,,,,…302.3.7 exists302.3.8hlen.2.3.9 hdel2.3.10 keys....23.11 hals312.3. 12 hgetall3224ists类型及操作322. 4. 1 push....322.4.2 push.332. 4. 3 insert着着。音··自着着着自非着332.4.4lset.333/71Linux公社www.linuxidc.com2.5,5|rem342.4.6|trim…1着自非:非非非非自非非非·自D自非非非·自非非·D非非352.4.7lpop....,.,…,362.4.8rpop…,,…,,…362. 4.9 rpoplpush...362. 4.10 index2.4.11llen.2sets类型及操作2.5.1sadd.2.5.2srem.382.5.3sp0p.,.,..,....,.,.,.,,.,…,…2.5.4 sdiff392.5.5 sdiffstore392.5.6 sinter2.5.7 interstore2.5.8 sunion2.5.9 sunionstore1·量··着,着2.5.10 smove∴……2.5.11 scard2.5.12 dismember2.5.13 srandmember4226 sorted sets类型及操作422.6.1zadd.2.6.2 zrem....43263 incrby........442.6, 4 rank442.6.5 zrevrank∴442.6.6 zrevrange452.57 rangebyscore.....,.,.,.,.,.,.,..452.6.8 count,.……,…着。音··着着非着自着是46Linux公社www.linuxidc.com2.6.9 card462.6.10 zscore.….…,…,…………,…,…,,………,,……,……462.6. 11 zremrangebyrank2.5.12 zremrangebyscore,..,.,…,,,…,,,47第三章、 Redis常用命令4831键值相关命令483.1.1 keys....83.1.2 exists3.1.3delspire3.1.5 move503.1.6 persist503. 1. 7 randome..3.1.8 rename513.1.9 type32服务器相关命令523.2.1ping..….……523.2.2 echo523.2 3 select523.2.4quit.523.2.5 dbsize533.2. 6 info532.7 monitor533.2.8 config get533.2.9 flushdb着·自自自自非非543.2.10 flushall着·自自自自非非54第四章 Redis高级实用特性5441安全性5442主从复制55421reds主从复制特点:555Linux公社www.linuxidc.com42.2 redis主从复制过程:5542.3如何酉置…5643事务控制.431简单事务控制……432如何取消个事务888943.3乐观锁复杂事务控制.44持久化机制:·.··441 snapshotting方式…6144.2aof方式45发布及订阅消息.6646 Pipeline批量发送请求4.7虚拟内存的使用.0/71Linux公社www.linuxidc.com欢迎点击这里的链接进入精彩的Liux公社网站Linux公社(ww.Linuxido.com)于2006年9月25日注册并开通网站,Linux现在已绎成为一种广受关注和支持的一种操作系统,IC是互联网数据中心, Linuxldc就是关于Linux的数据中心。Linux公社是专业的Liux系统门户网站,实时发布最新Liux资讯,包括 LinuxUbuntu、 Fedora、 Redhat、红旗 Linux、 Linux教程、 Linux认证、 SUSE Linux、Android、 Oracle、 Hadoop、 CentOS、 MySQL、 Apache、Ngmx、 Tomcat、 Python、Java、C语言、 Open Stack、集群等技术。Linux公社(LinuXIdo.com)设置了有一定影响力的Liux专题栏目Linux/公社主站网址:www.inuxidccon旗下网站:www.linuxidc,net包括: Ubuntu专题 Fedora专题 Android专题 Oracle专题Hado专题RedH就t专题SUsE专题红旗Lnux专题 Centos专题LnUx公社www.lInuxidc.comLinux公社微信公众号:1 inuxidc com囗酸回微信扫扫LIixiuc.com公就yF气订阅专业的最新Lnux资讯及开inurewww nan or源技术教程。百深恶搜索微信公众号: nuxidc com第一章 Redis快速入门-E redisRedis是一个 Key-Value存储系统。和 Memcached类似,它支持存储的 value类型相对史多,包括 string(字符串)、list(链表)、set集合)和z5et(有序集合)。这些数据类型都支持push/popad/ remove及取父集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上, Redis支持各种不同方式的排序。与 memcached一样,为了保证效率,数据都是缓存在内存中。区別的是 Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-save(主从)同步。11 Key-value存储系统简介Key- Value store是当下比较流行的话题,尤其在构建诸如搜索引擎、IM、P2P、游戏服务器SNS等大型互联网应用以及提供云计算服务的时侯,怎样保证系统在海量数据环境下的髙性能、高可靠性、高扩展性、高可用性、低成本成为所有系统架构们挖苦心思考虑的重点,而怎样解决数据厍服务器的性能瓶颈是最大的挑战。按照分布式领域的CAP理论( Consistencγ、 Availability、 Tolerance to network partitions这三部分在任何系统架构实现时只可能同时满足其中二点,没法三者兼顾)来衠量,传统的关系数据库的ACD只满足了 Consistency、 Availability,因此在 Partition tolerance上就很难做得好外传统的关系数据厍处理海量数据、分布式架构时候在 Performance、 Scalabi|ity、Availability等方面也存在很大的局限性。而 Key-Value Store更加注重对海量数据存取的性能、分布式、扩展性支持上,并不需要传统关系数据库的一些特征,例如: Schema、事务、完整SQL査询攴持等等,因此在分布式环境下的性能相对于传统的关系数据厍有较大的提升Key- value数据库分为很多种类,具体如下图Linux公社www.linuxidc.com项目名称西吉喜错性样久性存介顾吝户协衩文挡契助商/社区Project VoldemortJava分区,复制 Pluggable:reDB,yArStructuredread-repair Mysqlblob/textA LinkedinRingo分区,复制, Custom on-diskErlangimmutable (append only log)HttpblobB诺基亚,mScalarisrlang分区,复制In-memory onlyErlang, JavablobB OnSale. nopaxosHttpKaiErng分区,复制? On-disk Dets FiMemcached blobDynomiteErlang分区,复制Pluggable: couchCustom asciiThriftblobD+ Powerset, noMemcacheDBC复制Berkley DBMemcached blobB新浪网,smeThruDBC++复制Pluggable: BerkdeyDB, ThriftDocumentCustom, Mysql, 53orientedC+ Third rail, unsureCouchDBErlang缇制分区? Custon on-diskHttp, jsonDocumentApache, yesCassandra1ava复制分区 Custom on-diskThriftBigtable meetsaceDook noDynamoHBase13a复制分区 Custom on-diskCustom APL,BigtableThrift RestA ApachHypertableC++复外区 om on-disk(HDFS, KFS)Thrift, other BigtableA Zvents,百度,yesTokyo Tyrant复制Tokyo CabinetMemcachedblobmXL. 1p. no这些 Key-Value数据库,有的是用c/C++编写的,有的是用Java编写的,还有的是用 Erlang编写的,每个都有自己的独到之处,我们从屮挑选一些比较有特色且应用广泛的产品学习和了解一下。1.1.1 VoldemortVoldemort是一个分布式Key/vae存储系统,它具有以下特点:数据自动在多个服务器之间复制●数据自动分区,因此每个服务器只包括整休数据的一个子集;●服务器故障处理是透明的;支攴持插入式序列化,允许丰富的Key和vaue类型,包括列表和元组,也可以集成常见的序列化框架,如 Protocol buffers, Thrift,Avro和 Java serialization●数据项支持版本化,即使在故障情况下,数据完整性也可以得到保障;●每个节点都是独立的,无需其他节点协调,因此也没有中央节点;单节点性能优秀:根据机器配貿、网络、磁楻系统和数据复匋因素的不同,每秒冋以执行10-20k操作●支持地理分散式部署。1.1.2 DynamoDynamo是亚马逊的key- value模式的存储平台,可用性和护展性都很好,性能也不错:读写访问中999%的响应时间都在300ms内8Linux公社www.linuxidc.com接下来对 Dynamo需要的一些特性做一下简要的摧述:● Cost-effectiveness-省钱! Dynamo不像一些商用数据库产品,需要昂贵的服务器来得到良好的性能,而且可能增加5%的访问量会需要你花2万美刀去买一台新服务器。而在 Dynamo上,由于是利用一堆廉价机器来存数据,于是你可能只需要花个500刀买个破机器加入到集群里就行了● Dynamo是一个Key- value存储-因此他不支持外键和关联查洵什么的。其 value值是二进制存储的,所以查询条件也只能作用在Key上。●配置简单的分布式存储-这是由」 Dynamo是去中心化地设计,在集群中它的每一台机器都是对等的,不像 MongoDB这样的中心化设计,于是它也不会有单点问题。11. 3 memcached bmemcachedb是一个由新浪网的开发人员开放出来的开源项目,给 memcached分布式缓存服务器添加了 Berkeley dB的持久化存储机制和异步主辅复制机制,让 memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是不需要严格事务约束,能够被持久化保存的应用场景,例如 memcachedb被应用在新浪博客上面11. 4 CassandraApache Cassandra是一套开源分布式 Key-Value存储系统。它最初由 Facebook开发,用于储存特别大的数据。 Facebook目前在使用此系统。主要特性●分布式基于 column的结构化高伸展性Cassandra的主要特点就是它不是个数据库,而是由堆数据库节点共同构成的·个分布式网络服务,对 Cassandra的一个写操作,会被复制到其他节点上去,对 Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个 Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了Cassandra是个混合型的丰关系的数据库,类似于 Google的 Big table。其主要功能比Dynomite(分布式的 Key-value存储系统)更丰富,但支持度却不如文档存储MoηgoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当屮功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的 bison格式,因此可以存储比较复杂的数据类型。) Cassandra最初由 Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以 Amazon专有的完全分布式的 Dynamo为基础,结合了GogeBig Table基于列族( Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为 Dynamo2.0。9Linux公社www.linuxidc.com