《Redis实战》红丸出品

上传人:我*** 文档编号:133118239 上传时间:2020-05-24 格式:PDF 页数:71 大小:1.29MB
返回 下载 相关 举报
《Redis实战》红丸出品_第1页
第1页 / 共71页
《Redis实战》红丸出品_第2页
第2页 / 共71页
《Redis实战》红丸出品_第3页
第3页 / 共71页
《Redis实战》红丸出品_第4页
第4页 / 共71页
《Redis实战》红丸出品_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《《Redis实战》红丸出品》由会员分享,可在线阅读,更多相关《《Redis实战》红丸出品(71页珍藏版)》请在金锄头文库上搜索。

1、 Redis 实战实战 红丸红丸出品出品 2 71 第一章 Redis 快速入门 7 1 1 Key Value 存储系统简介 7 1 1 1 Voldemort 8 1 1 2 Dynamo 8 1 1 3 memcachedb 9 1 1 4 Cassandra 9 1 1 5 memcached 10 1 1 6 Hypertable 10 1 2 为什么选择 Key Value Store 11 1 2 1 大规模的互联网应用 11 1 2 2 云存储 11 1 2 3 Redis 实际应用案例 12 1 3 初识 Redis 14 1 3 1 数据类型 14 1 3 2 持久化 14

2、 1 3 3 主从同步 14 1 3 4 性能 15 1 3 5 提供 API 的语言 15 1 3 6 适用场合 15 1 4 快速入门 17 1 4 1 安装 Redis 17 1 4 2 配置 Redis 18 1 4 3 操作数据库 21 第二章 Redis 数据类型及操作 22 2 1 前言 22 2 2 strings 类型及操作 23 2 2 1 set 23 2 2 2 setnx 23 2 2 3 setex 24 2 2 4 setrange 24 红丸红丸出品出品 3 71 2 2 5 mset 24 2 2 6 msetnx 25 2 2 7 get 25 2 2 8

3、getset 25 2 2 9 getrange 26 2 2 10 mget 26 2 2 11 incr 27 2 2 12 incrby 27 2 2 13 decr 27 2 2 14 decrby 27 2 2 15 append 28 2 2 16 strlen 28 2 3 hashes 类型及操作 29 2 3 1 hset 29 2 3 2 hsetnx 29 2 3 3 hmset 29 2 3 4 hget 30 2 3 5 hmget 30 2 3 6 hincrby 30 2 3 7 hexists 30 2 3 8 hlen 31 2 3 9 hdel 31 2 3

4、 10 hkeys 31 2 3 11 hvals 31 2 3 12 hgetall 32 2 4 lists 类型及操作 32 2 4 1 lpush 32 2 4 2 rpush 33 2 4 3 linsert 33 2 4 4 lset 33 红丸红丸出品出品 4 71 2 5 5 lrem 34 2 4 6 ltrim 35 2 4 7 lpop 36 2 4 8 rpop 36 2 4 9 rpoplpush 36 2 4 10 lindex 37 2 4 11 llen 37 2 5 sets 类型及操作 37 2 5 1 sadd 37 2 5 2 srem 38 2 5 3

5、 spop 38 2 5 4 sdiff 39 2 5 5 sdiffstore 39 2 5 6 sinter 40 2 5 7 sinterstore 40 2 5 8 sunion 40 2 5 9 sunionstore 41 2 5 10 smove 41 2 5 11 scard 42 2 5 12 sismember 42 2 5 13 srandmember 42 2 6 sorted sets 类型及操作 42 2 6 1 zadd 43 2 6 2 zrem 43 2 6 3 zincrby 44 2 6 4 zrank 44 2 6 5 zrevrank 44 2 6 6

6、 zrevrange 45 2 6 7 zrangebyscore 45 2 6 8 zcount 46 红丸红丸出品出品 5 71 2 6 9 zcard 46 2 6 10 zscore 46 2 6 11 zremrangebyrank 47 2 6 12 zremrangebyscore 47 第三章 Redis 常用命令 48 3 1 键值相关命令 48 3 1 1 keys 48 3 1 2 exists 49 3 1 3 del 49 3 1 4 expire 49 3 1 5 move 50 3 1 6 persist 50 3 1 7 randomkey 51 3 1 8 r

7、ename 51 3 1 9 type 51 3 2 服务器相关命令 52 3 2 1 ping 52 3 2 2 echo 52 3 2 3 select 52 3 2 4 quit 52 3 2 5 dbsize 53 3 2 6 info 53 3 2 7 monitor 53 3 2 8 config get 53 3 2 9 flushdb 54 3 2 10 flushall 54 第四章 Redis 高级实用特性 54 4 1 安全性 54 4 2 主从复制 55 4 2 1 redis 主从复制特点 55 红丸红丸出品出品 6 71 4 2 2 redis 主从复制过程 55

8、4 2 3 如何配置 56 4 3 事务控制 58 4 3 1 简单事务控制 58 4 3 2 如何取消一个事务 58 4 3 3 乐观锁复杂事务控制 59 4 4 持久化机制 61 4 4 1 snapshotting 方式 61 4 4 2 aof 方式 63 4 5 发布及订阅消息 66 4 6 Pipeline 批量发送请求 67 4 7 虚拟内存的使用 70 红丸红丸出品出品 7 71 第一章第一章 Redis 快速入门快速入门 Redis 是一个 Key Value 存储系统 和 Memcached 类似 它支持存储的 value 类型相对更多 包括 string 字符串 list

9、 链表 set 集合 和 zset 有序集合 这些数据类型都支持 push pop add remove 及取交集并集和差集及更丰富的操作 而且这些操作都是原子性的 在此基础 上 Redis 支持各种不同方式的排序 与 memcached 一样 为了保证效率 数据都是缓存在 内存中 区别的是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 文件 并且在此基础上实现了 master slave 主从 同步 1 1 Key Value 存储系统简介存储系统简介 Key Value Store 是当下比较流行的话题 尤其在构建诸如搜索引擎 IM P2P 游戏服务器 SNS 等

10、大型互联网应用以及提供云计算服务的时候 怎样保证系统在海量数据环境下的高性 能 高可靠性 高扩展性 高可用性 低成本成为所有系统架构们挖苦心思考虑的重点 而 怎样解决数据库服务器的性能瓶颈是最大的挑战 按照分布式领域的 CAP 理论 Consistency Availability Tolerance to network Partitions 这三 部分在任何系统架构实现时只可能同时满足其中二点 没法三者兼顾 来衡量 传统的关系 数据库的 ACID 只满足了 Consistency Availability 因此在 Partition tolerance 上就很难做得好 另外传统的关系数据库

11、处理海量数据 分布式架构时候在 Performance Scalability Availability 等方面也存在很大的局限性 而 Key Value Store 更加注重对海量数据存取的性能 分布式 扩展性支持上 并不需要传统 关系数据库的一些特征 例如 Schema 事务 完整 SQL 查询支持等等 因此在分布式环 境下的性能相对于传统的关系数据库有较大的提升 Key Value 数据库分为很多种类 具体如下图 红丸红丸出品出品 8 71 这些 Key Value 数据库 有的是用 C C 编写的 有的是用 Java 编写的 还有的是用 Erlang 编写的 每个都有自己的独到之处 我

12、们从中挑选一些比较有特色且应用广泛的产品学习和 了解一下 1 1 1 Voldemort Voldemort 是一个分布式 Key Value 存储系统 它具有以下特点 数据自动在多个服务器之间复制 数据自动分区 因此每个服务器只包括整体数据的一个子集 服务器故障处理是透明的 支持插入式序列化 允许丰富的 Key 和 Value 类型 包括列表和元组 也可以集成常见 的序列化框架 如 Protocol Buffers Thrift Avro 和 Java Serialization 数据项支持版本化 即使在故障情况下 数据完整性也可以得到保障 每个节点都是独立的 无需其他节点协调 因此也没有中

13、央节点 单节点性能优秀 根据机器配置 网络 磁盘系统和数据复制因素的不同 每秒可以执 行 10 20k 操作 支持地理分散式部署 1 1 2 Dynamo Dynamo 是亚马逊的 key value 模式的存储平台 可用性和扩展性都很好 性能也不错 读写 访问中 99 9 的响应时间都在 300ms 内 红丸红丸出品出品 9 71 接下来对 Dynamo 需要的一些特性做一下简要的描述 Cost effectiveness 省钱 Dynamo 不像一些商用数据库产品 需要昂贵的服务器来得 到良好的性能 而且可能增加 5 的访问量会需要你花 2 万美刀去买一台新服务器 而 在 Dynamo 上

14、 由于是利用一堆廉价机器来存数据 于是你可能只需要花个 500 刀买 个破机器加入到集群里就行了 Dynamo 是一个 Key Value 存储 因此他不支持外键和关联查询什么的 其 Value 值是 二进制存储的 所以查询条件也只能作用在 Key 上 配置简单的分布式存储 这是由于 Dynamo 是去中心化地设计 在集群中它的每一台 机器都是对等的 不像 MongoDB 这样的中心化设计 于是它也不会有单点问题 1 1 3 memcachedb memcachedb 是 一个由新浪网的开发人员开放出来的开源项目 给 memcached 分布式缓存 服务器添加了 Berkeley DB 的持久

15、化存储机制和异步主辅复制机制 让 memcached 具备了事 务恢复能力 持久化能力和分布式复制能力 非常适合于需要超高性能读写速度 但是 不 需要严格事务约束 能够被持久化保存的应用场景 例如 memcachedb 被应用在新浪博客上 面 1 1 4 Cassandra Apache Cassandra 是一套开源分布式 Key Value 存储系统 它最初由 Facebook 开发 用于储 存特别大的数据 Facebook 目前在使用此系统 主要特性 分布式 基于 column 的结构化 高伸展性 Cassandra 的主要特点就是它不是一个数据库 而是由一堆数据库节点共同构成的一个分布

16、 式网络服务 对 Cassandra 的一个写操作 会被复制到其他节点上去 对 Cassandra 的读操 作 也会被路由到某个节点上面去读取 对于一个 Cassandra 群集来说 扩展性能 是比较 简单的事情 只管在群集里面添加节点就可以了 Cassandra 是一个混合型的非关系的数据库 类似于 Google 的 BigTable 其主要功能比 Dynomite 分布式的 Key Value 存 储系统 更丰富 但支持度却不如文档存储 MongoDB 介 于关系数据库和非关系数据库之间的开源产品 是非关系数据库当中功能最丰富 最像关系 数据库 的 支持的数据结构非常松散 是类似 json 的 bjson 格式 因此可以存储比较复杂 的数据类型 Cassandra 最初由 Facebook 开发 后转变成了开源项目 它是一个网络社交 云计算方面理想的数据库 以 Amazon 专有的完全分布式的 Dynamo 为基础 结合了 Google BigTable 基于列族 Column Family 的数据模型 P2P 去中心化的存储 很多方面都可以称 之为 Dynamo 2 0 红丸红丸

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号