SlideShare a Scribd company logo
LAMP 人 主题分享交流会 www.LAMPER.cn QQ 群: 3330312 http://weibo.com/lampercn
redis  适用场景与实现  田琪
主题 数据类型与实现 持久化与复制 容量规划 适用场景 相关参数与优化
redis  概述   a disk backed in-memory database 高性能网络接口  +  数据结构集合
网络接口 单线程 IO 复用 aeEvent  封装 IO 与定时器 默认支持 10K 连接  AE_SETSIZE (1024*10) why not multi-thread cache coherency complexity with locks Deadlocks
redis  数据类型 string hash list set sorted set
redis  基础数据结构 redisObject  数据指针  + type + encoding 内存容量占用 ( 不包含数据本身 ) 16 字节( 64 位 , 不开启 vm ) 40 字节  ( 64 位,开启 vm) redis 里面所有存储对象 (key,value) 都 redisObject  类型 案例 set,get,incr  等
redis list -  双向链表 内存占用 list  每个元素占用内存 listNode( 前后指针,数据节点指针 ) 数据本身指针 (robj) 24 字节  + 16  字节  =  40 字节 40 字节  +  元素本身大小 相关参数 list-max-ziplist-entries list-max-ziplist-value 使用场景  关注列表,粉丝列表 ...
redis hash 数据结构实现 zipmap & real hashmap 内存容量占用 zipmap 更省内存 相关参数 hash-max-zipmap-entries  hash-max-zipmap-value 使用场景 用户计数器
redis set & sorted set  set  数据结构实现 hashmap (value  为 NULL)  sorted set  数据结构实现 hashmap(element->score) skiplist ( 按 element 插入有序 ) 相关参数 s et-max-intset-entries 使用场景 用户发件箱 mid
hash & rehash 双 hash 表做 rehash 预规划减小 rehash 次数 rehash 时每次操作迁移一个 bucket 相关参数 DICT_HT_INITIAL_SIZE  4 REDIS_HT_MINFILL  10 Activerehashing
redis  持久化机制 snapshot save  参数  aof appendfsync  参数 vm  vm is not the way to go for the future slow restarts,slow saving,slow replication,complex code diskstore key,value stored on disk memory works as a cache ( read through,write back)
redis  复制 实现机制 快照同步 存在的问题 无增量复制 slave 表重建
redis  容量规划与建议 业务需要哪几种数据类型 预先做好容量规划 sharding  策略与 HA rolling/pre-sharding/ 双写 / 多 slave 使用 pipeline 减小网络 IO
redis  适用场景 MC + MySQL  不能完全解决 web2.0 的需求 mc 穿透问题,跨机房问题 ,... 众多开源 nosql 百花齐放 Cassandra,Riak,Voldemort Hbase CouchDB,MongoDB,... what we need 小数据量,高速读写访问 大数据量,有明显热点数据 大数据量,无热点数据
异构读写分离
参数小结 vm-enabled maxmemory save/appendfsync hash-max-zipmap-entries  hash-max-zipmap-value
参数小结  (> 2.2) list-max-ziplist-entries list-max-ziplist-value Set-max-intset-entries
源码中部分参数 DICT_HT_INITIAL_SIZE  4 REDIS_HT_MINFILL  10 AE_SETSIZE (1024*10) REDIS_SHARED_INTEGERS 10000
小结 redis  最佳使用方式是 in-memory 根据业务选择合适数据类型 做好容量规划以及 pre-sharding 不要过度依赖复制和持久化 使用 pipeline 减小网络 IO 先了解实现后使用,如 pubsub,scripting no one-size-fit-all product, understanding the tradeoffs
Thanks 欢迎随时交流: 我的微博  : @ 摇摆巴赫 http://t.sina.com.cn/bachmozart 我的博客: http://www.tianqidev.com/

More Related Content

PDF
NoSQL误用和常见陷阱分析
PPT
Redis分享
PPTX
Redis介绍
PPT
Redis 常见使用模式分析
KEY
nodejs在微博前端开发中的应用
PDF
Ceph bluestore-tiering-2018-11-15
PPTX
Mongo db 簡介
PDF
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
NoSQL误用和常见陷阱分析
Redis分享
Redis介绍
Redis 常见使用模式分析
nodejs在微博前端开发中的应用
Ceph bluestore-tiering-2018-11-15
Mongo db 簡介
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬

What's hot (20)

PPT
SSDB(LevelDB server) vs Redis
PDF
SSDB 入门基础
PPTX
IoTDB OptimizeAndCaseStudy
PPT
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
KEY
realtime-twitter-search
PPT
淘宝分布式数据处理实践
PDF
Mysql fast share
PDF
Redis介绍
PPTX
cdn的那些事儿
PPT
缓存基础
PPTX
IoTDB Ops
PDF
Redis cluster那些事儿
PPTX
Mysql基于ssd flashcache实践
PPT
云计算环境中Ssd在cassandra测试的性能表现
PPT
作業系統 7 3常見儲存裝置管理範例
PPT
7 3常見儲存裝置管理範例
PDF
Ceph中国社区9.19 Ceph IO 路径 和性能分析-王豪迈05
PPTX
Ocean base 千亿级海量数据库-日照
PPT
MongoDB介绍
PPT
Huangjing renren
SSDB(LevelDB server) vs Redis
SSDB 入门基础
IoTDB OptimizeAndCaseStudy
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
realtime-twitter-search
淘宝分布式数据处理实践
Mysql fast share
Redis介绍
cdn的那些事儿
缓存基础
IoTDB Ops
Redis cluster那些事儿
Mysql基于ssd flashcache实践
云计算环境中Ssd在cassandra测试的性能表现
作業系統 7 3常見儲存裝置管理範例
7 3常見儲存裝置管理範例
Ceph中国社区9.19 Ceph IO 路径 和性能分析-王豪迈05
Ocean base 千亿级海量数据库-日照
MongoDB介绍
Huangjing renren
Ad

Viewers also liked (7)

PDF
Presentation
PPTX
分布式计算与Hadoop - 刘鹏
PDF
如何构建一个高可用可扩展的广告投放平台-品友互动
PPT
身随心动—《汉字工具箱》开发历程 姚鸿滨
PDF
海量用户数据处理及其在一淘广告和推荐中的应用
PPTX
曾勇 Elastic search-intro
PPTX
海量数据计算架构实现
Presentation
分布式计算与Hadoop - 刘鹏
如何构建一个高可用可扩展的广告投放平台-品友互动
身随心动—《汉字工具箱》开发历程 姚鸿滨
海量用户数据处理及其在一淘广告和推荐中的应用
曾勇 Elastic search-intro
海量数据计算架构实现
Ad

Similar to Redis 介绍 -田琪 (20)

PDF
redis 适用场景与实现
PPT
淘宝商品库MySQL优化实践
PPTX
應用Ceph技術打造軟體定義儲存新局
PDF
美团技术沙龙04 - Kv Tair best practise
PPT
Cassandra简介.ppt
PPTX
Ocean base海量结构化数据存储系统 hadoop in china
PDF
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
PPT
Erlang游戏开发
PPTX
浅析分布式存储架构—设计自己的存储- 58同城徐振华
PDF
MongoDB for C# developer
PPTX
Nosql三步曲
PPT
基于hbase的实时计算框架prom(20111114)
PPT
Hbase
PPT
OTN软硬件结合数据库解决方案
PDF
网站存储经验谈-pdf
PDF
网站存储经验谈pdf
PDF
Youku arch qcon2009_beijing
PDF
优酷 Web网站架构案例分析
PDF
Key value store
PDF
Taobao图片存储与cdn系统到服务
redis 适用场景与实现
淘宝商品库MySQL优化实践
應用Ceph技術打造軟體定義儲存新局
美团技术沙龙04 - Kv Tair best practise
Cassandra简介.ppt
Ocean base海量结构化数据存储系统 hadoop in china
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Erlang游戏开发
浅析分布式存储架构—设计自己的存储- 58同城徐振华
MongoDB for C# developer
Nosql三步曲
基于hbase的实时计算框架prom(20111114)
Hbase
OTN软硬件结合数据库解决方案
网站存储经验谈-pdf
网站存储经验谈pdf
Youku arch qcon2009_beijing
优酷 Web网站架构案例分析
Key value store
Taobao图片存储与cdn系统到服务

More from Shaoning Pan (20)

PPTX
RTB 优化算法
PDF
Technology Changes
PDF
一淘广告机器学习
PDF
大型互联网广告应用系统架构
PDF
Tanx成长之路 real time media
PDF
移动社交网络动态框架 李章晶
PPTX
移动互联网产业分析 梁文静
PDF
Hadoop的etl任务—flume使用及其 优化-品友互动
PDF
互联网广告发展的趋势-品友互动
PDF
互联网行为分析和数据挖掘-品友互动
PDF
网站前段性能优化-品友互动
PDF
品友互动 Hadoop的etl任务—flume使用及其 优化
PPTX
Cassandra实时统计分享 - 赵伟
PPT
Android应用开发 - 沈大海
PPTX
淘宝数据魔方的系统架构 -长林
PPTX
Think social to go global
PPTX
腾讯开放平台 Hellena
PDF
Redis的一点想法 - 杨海潮
PPT
高性能Lamp程序设计 付超群
PPTX
No sql带来了什么 孙立
RTB 优化算法
Technology Changes
一淘广告机器学习
大型互联网广告应用系统架构
Tanx成长之路 real time media
移动社交网络动态框架 李章晶
移动互联网产业分析 梁文静
Hadoop的etl任务—flume使用及其 优化-品友互动
互联网广告发展的趋势-品友互动
互联网行为分析和数据挖掘-品友互动
网站前段性能优化-品友互动
品友互动 Hadoop的etl任务—flume使用及其 优化
Cassandra实时统计分享 - 赵伟
Android应用开发 - 沈大海
淘宝数据魔方的系统架构 -长林
Think social to go global
腾讯开放平台 Hellena
Redis的一点想法 - 杨海潮
高性能Lamp程序设计 付超群
No sql带来了什么 孙立

Redis 介绍 -田琪

  • 1. LAMP 人 主题分享交流会 www.LAMPER.cn QQ 群: 3330312 http://weibo.com/lampercn
  • 3. 主题 数据类型与实现 持久化与复制 容量规划 适用场景 相关参数与优化
  • 4. redis 概述 a disk backed in-memory database 高性能网络接口 + 数据结构集合
  • 5. 网络接口 单线程 IO 复用 aeEvent 封装 IO 与定时器 默认支持 10K 连接 AE_SETSIZE (1024*10) why not multi-thread cache coherency complexity with locks Deadlocks
  • 6. redis 数据类型 string hash list set sorted set
  • 7. redis 基础数据结构 redisObject 数据指针 + type + encoding 内存容量占用 ( 不包含数据本身 ) 16 字节( 64 位 , 不开启 vm ) 40 字节 ( 64 位,开启 vm) redis 里面所有存储对象 (key,value) 都 redisObject 类型 案例 set,get,incr 等
  • 8. redis list - 双向链表 内存占用 list 每个元素占用内存 listNode( 前后指针,数据节点指针 ) 数据本身指针 (robj) 24 字节 + 16 字节 = 40 字节 40 字节 + 元素本身大小 相关参数 list-max-ziplist-entries list-max-ziplist-value 使用场景 关注列表,粉丝列表 ...
  • 9. redis hash 数据结构实现 zipmap & real hashmap 内存容量占用 zipmap 更省内存 相关参数 hash-max-zipmap-entries hash-max-zipmap-value 使用场景 用户计数器
  • 10. redis set & sorted set set 数据结构实现 hashmap (value 为 NULL) sorted set 数据结构实现 hashmap(element->score) skiplist ( 按 element 插入有序 ) 相关参数 s et-max-intset-entries 使用场景 用户发件箱 mid
  • 11. hash & rehash 双 hash 表做 rehash 预规划减小 rehash 次数 rehash 时每次操作迁移一个 bucket 相关参数 DICT_HT_INITIAL_SIZE 4 REDIS_HT_MINFILL 10 Activerehashing
  • 12. redis 持久化机制 snapshot save 参数 aof appendfsync 参数 vm vm is not the way to go for the future slow restarts,slow saving,slow replication,complex code diskstore key,value stored on disk memory works as a cache ( read through,write back)
  • 13. redis 复制 实现机制 快照同步 存在的问题 无增量复制 slave 表重建
  • 14. redis 容量规划与建议 业务需要哪几种数据类型 预先做好容量规划 sharding 策略与 HA rolling/pre-sharding/ 双写 / 多 slave 使用 pipeline 减小网络 IO
  • 15. redis 适用场景 MC + MySQL 不能完全解决 web2.0 的需求 mc 穿透问题,跨机房问题 ,... 众多开源 nosql 百花齐放 Cassandra,Riak,Voldemort Hbase CouchDB,MongoDB,... what we need 小数据量,高速读写访问 大数据量,有明显热点数据 大数据量,无热点数据
  • 17. 参数小结 vm-enabled maxmemory save/appendfsync hash-max-zipmap-entries hash-max-zipmap-value
  • 18. 参数小结 (> 2.2) list-max-ziplist-entries list-max-ziplist-value Set-max-intset-entries
  • 19. 源码中部分参数 DICT_HT_INITIAL_SIZE 4 REDIS_HT_MINFILL 10 AE_SETSIZE (1024*10) REDIS_SHARED_INTEGERS 10000
  • 20. 小结 redis 最佳使用方式是 in-memory 根据业务选择合适数据类型 做好容量规划以及 pre-sharding 不要过度依赖复制和持久化 使用 pipeline 减小网络 IO 先了解实现后使用,如 pubsub,scripting no one-size-fit-all product, understanding the tradeoffs
  • 21. Thanks 欢迎随时交流: 我的微博 : @ 摇摆巴赫 http://t.sina.com.cn/bachmozart 我的博客: http://www.tianqidev.com/