SlideShare una empresa de Scribd logo
1 de 28
Another Introduce to Redis
                    http://jiaqing.me
                           2012-05-21
大纲
初识Redis
实践Redis
优化Redis




               2
Part 1



初识Redis


           3
介绍

官方定义:
Redis is an open source, advanced key-value store. It is often referred to as
a data structure server since keys can
contain strings, hashes, lists, sets and sorted sets.




                                                                                4
介绍

官方定义:
Redis is an open source, advanced key-value store. It is often referred to as
a data structure server since keys can
contain strings, hashes, lists, sets and sorted sets.

主要卖点:
Key-value 内存级 高性能 复杂数据结构




                                                                                5
Redis vs Memcached
相同点:
• 都基于内存,性能都足够高




                            6
Redis vs Memcached
相同点:
• 都基于内存,性能都足够高

不同点:

•   Redis支持复杂类型
•   Redis支持主从复制
•   Redis支持数据持久化
•   Redis支持虚拟内存
•   Redis只使用单核
•   Redis自身暂不支持sharding

                                7
数据类型

key:
• String类型
• 非二进制安全: “my name” Error “mynamen” Error
• 约定俗成的命名: object-type:id:field 比如 user:1000:password




                                                        8
数据类型

value:
•   String: 二进制安全, 最大1G
•   List :String类型的双向链表
•   Set :String类型的无序集合,可取交集、并集、差集
•   SortSet :可排序的Set, 可指定score, 区间操作
•   Hash:String类型的k-v映射




                                       9
eg.list
LPUSH mylist a # now the list is “a”
LPUSH mylist b # now the list is “b”, “a”
RPUSH mylist c # now the list is “b”, “a”, “c”




                                                 10
eg.hash




    动手尝试 http://try.redis-db.com/
    命令手册 http://redis.io/commands
    中文参考 http://redis.readthedocs.org/en/latest/

                                                   11
事务
支持连接级别的简单事务           redis> multi
                      OK
• multi :启动事务
                      redis> incr a
• exec:提交事务           QUEUED
• discard:放弃事务        redis> incr b
                      QUEUED
                      redis> exec
                      1. (integer) 1
                      2. (integer) 1




                                       12
持久化

Snapshotting(默认):
• 将内存数据写入二进制文件
• 可配置N秒执行一次
    save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
    save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
    save 60 10000 #...
• 宕机时丢失最后一次快照




                                          13
持久化

AOF(append-only file):
• 每次写请求写入文件
• 自定义写入的时机
    appendfsync always #每次收到写命令就立即强制写入磁盘
    appendfsync everysec #每秒钟强制写入磁盘一次
    appendfsync no       #完全依赖OS,性能最好,持久化没保证




                                               14
主从复制
• Master可带多个Slave
• 初次同步数据,Master不阻塞,Slave阻塞




                             15
虚拟内存
• 突破单机内存限制
• 只会将value放入swap
• 不推荐使用




                          16
Redis客户端
C
C++
C#
Java
Lua
Node.js
Perl
Go
Ruby
PHP
…
查看全部 http://redis.io/clients

                               17
Part 2



实践Redis


           18
简单的微博
•   个人信息
•   关注列表
•   粉丝列表
•   推送信息




                   19
个人信息
• 用户唯一标识(ID)      SET global:newUserId 0
• 录入个人相关信息        …
                  INCR global:nextUserId
                  => 1000
                  SET uid:1000:username asuka
                  SET uid:1000:password *****
                  SET uid:1000:url /asuka
                  SET uid:1000:xxx xxxxxxxxx
                  …




                                                20
关注/粉丝
•   添加关注      # 添加关注
              SADD uid:1000:following 1001
•   添加粉丝
              SADD uid:1000:following 1002
•   统计粉丝数
              SADD uid:1000:following 1003
•   获取关注列表    …
•   共同关注      # 添加粉丝
              SADD uid:1000:followers 0001
              SADD uid:1000:followers 0002
              SADD uid:1000:followers 0003
              …
              #获取关注列表
              SMEMBERS uid:1000:following
              =>1002,1003,1001
              #统计多少粉丝
              SCARD uid:1000:followers
              =>3
              #共同关注
              SINTER uid:1000:following uid:1001:following
                                                         21
              …
推送消息
• 发送消息    # 发送消息
• 接收消息    SET postid:900001 我的第一条微博
          RPUSH uid:1000:posts 900001

          # 接收消息
          RPUSH uid:1001:receive 900001

          # 翻页查看
          LRANGE uid:1001:receive 0 9
          =>900001,893201,939922,…..




                                          22
Part 3



优化Redis


           23
避免使用VM
• 频繁swap性能差
• 官方版本准备去除该功能




                    24
合理利用CPU
• 单线程的优势
• 单机多实例 : 实例数 = CPU - 1




                          25
重视容量规划
• 合理预估内存/带宽
• 实时监控同样重要




                       26
Part 4



                   参考资料
http://redis.io/

http://blog.nosqlfan.com

http://www.slideshare.net/search/slideshow?searchfrom=header&q=redis




                                                                       27
Another Introduce to Redis
                    http://jiaqing.me
                           2012-05-21




                               -END-




                                        28

Más contenido relacionado

La actualidad más candente

鳳山高中/網頁應用程式開發入門 I
鳳山高中/網頁應用程式開發入門 I鳳山高中/網頁應用程式開發入門 I
鳳山高中/網頁應用程式開發入門 ILorex L. Yang
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇fangdeng
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用Lorex L. Yang
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and TutorialHo Kim
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理Justin Lin
 
MIS MySQL 入門
MIS MySQL 入門MIS MySQL 入門
MIS MySQL 入門均民 戴
 

La actualidad más candente (9)

硬碟種類
硬碟種類硬碟種類
硬碟種類
 
鳳山高中/網頁應用程式開發入門 I
鳳山高中/網頁應用程式開發入門 I鳳山高中/網頁應用程式開發入門 I
鳳山高中/網頁應用程式開發入門 I
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇
 
Hdfs
HdfsHdfs
Hdfs
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and Tutorial
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
 
MIS MySQL 入門
MIS MySQL 入門MIS MySQL 入門
MIS MySQL 入門
 
Ubuntu
UbuntuUbuntu
Ubuntu
 

Destacado

Irtaza's presentation
Irtaza's presentationIrtaza's presentation
Irtaza's presentationlibrarygrl3
 
VC_flier_HYD.compressed
VC_flier_HYD.compressedVC_flier_HYD.compressed
VC_flier_HYD.compressedSuneel Sharma
 
The ABC's of Dad and Me
The ABC's of Dad and MeThe ABC's of Dad and Me
The ABC's of Dad and Mesunnymel20
 
Hollow - Recovering from Eating Disorders
Hollow - Recovering from Eating DisordersHollow - Recovering from Eating Disorders
Hollow - Recovering from Eating Disorderspyromarketing
 
Firefox extensions for_developers
Firefox extensions for_developersFirefox extensions for_developers
Firefox extensions for_developersbwebster719
 
Old Ivy Vs Ort 2008
Old Ivy Vs Ort 2008Old Ivy Vs Ort 2008
Old Ivy Vs Ort 2008paobazzi
 
Furniture and Accessories Catalog
Furniture and Accessories CatalogFurniture and Accessories Catalog
Furniture and Accessories Catalogscottmaguire
 
Airport In Construction
Airport In ConstructionAirport In Construction
Airport In ConstructionStelarosa .
 
Ms.Nl.9031 Smoelenboek Wpc Final2
Ms.Nl.9031 Smoelenboek Wpc Final2Ms.Nl.9031 Smoelenboek Wpc Final2
Ms.Nl.9031 Smoelenboek Wpc Final2Renataadelino
 
Crew documents 020564 - 020611
Crew documents 020564 - 020611Crew documents 020564 - 020611
Crew documents 020564 - 020611Obama White House
 
Tony Wilson E Pack 7 23 09
Tony Wilson E Pack 7 23 09Tony Wilson E Pack 7 23 09
Tony Wilson E Pack 7 23 09pageway
 
21st Century Skills Pp
21st Century Skills Pp21st Century Skills Pp
21st Century Skills Ppheyjohnreese
 
Bgt Presentation Slideshare
Bgt Presentation   SlideshareBgt Presentation   Slideshare
Bgt Presentation Slideshareandyclark
 
Chase Oaks VBX - Monday - Greatness of the Journey
Chase Oaks VBX - Monday - Greatness of the JourneyChase Oaks VBX - Monday - Greatness of the Journey
Chase Oaks VBX - Monday - Greatness of the JourneyJason Loveless
 

Destacado (20)

Irtaza's presentation
Irtaza's presentationIrtaza's presentation
Irtaza's presentation
 
VC_flier_HYD.compressed
VC_flier_HYD.compressedVC_flier_HYD.compressed
VC_flier_HYD.compressed
 
The ABC's of Dad and Me
The ABC's of Dad and MeThe ABC's of Dad and Me
The ABC's of Dad and Me
 
Hollow - Recovering from Eating Disorders
Hollow - Recovering from Eating DisordersHollow - Recovering from Eating Disorders
Hollow - Recovering from Eating Disorders
 
Bluebeauty 2
Bluebeauty 2Bluebeauty 2
Bluebeauty 2
 
Firefox extensions for_developers
Firefox extensions for_developersFirefox extensions for_developers
Firefox extensions for_developers
 
Old Ivy Vs Ort 2008
Old Ivy Vs Ort 2008Old Ivy Vs Ort 2008
Old Ivy Vs Ort 2008
 
Furniture and Accessories Catalog
Furniture and Accessories CatalogFurniture and Accessories Catalog
Furniture and Accessories Catalog
 
Airport In Construction
Airport In ConstructionAirport In Construction
Airport In Construction
 
MSE Part1-Chapter3
MSE Part1-Chapter3MSE Part1-Chapter3
MSE Part1-Chapter3
 
Krecenje
KrecenjeKrecenje
Krecenje
 
Ms.Nl.9031 Smoelenboek Wpc Final2
Ms.Nl.9031 Smoelenboek Wpc Final2Ms.Nl.9031 Smoelenboek Wpc Final2
Ms.Nl.9031 Smoelenboek Wpc Final2
 
Boje Prijatelja
Boje PrijateljaBoje Prijatelja
Boje Prijatelja
 
Crm User Training Chinese
Crm User Training ChineseCrm User Training Chinese
Crm User Training Chinese
 
Gd Presentation
Gd PresentationGd Presentation
Gd Presentation
 
Crew documents 020564 - 020611
Crew documents 020564 - 020611Crew documents 020564 - 020611
Crew documents 020564 - 020611
 
Tony Wilson E Pack 7 23 09
Tony Wilson E Pack 7 23 09Tony Wilson E Pack 7 23 09
Tony Wilson E Pack 7 23 09
 
21st Century Skills Pp
21st Century Skills Pp21st Century Skills Pp
21st Century Skills Pp
 
Bgt Presentation Slideshare
Bgt Presentation   SlideshareBgt Presentation   Slideshare
Bgt Presentation Slideshare
 
Chase Oaks VBX - Monday - Greatness of the Journey
Chase Oaks VBX - Monday - Greatness of the JourneyChase Oaks VBX - Monday - Greatness of the Journey
Chase Oaks VBX - Monday - Greatness of the Journey
 

Similar a Another Introduce to Redis

Redis介绍
Redis介绍Redis介绍
Redis介绍锐 张
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍 yubao fu
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈lovingprince58
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结Lixun Peng
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
Redis cluster那些事儿
Redis cluster那些事儿Redis cluster那些事儿
Redis cluster那些事儿rfyiamcool
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 
Redis 常见使用模式分析
Redis 常见使用模式分析Redis 常见使用模式分析
Redis 常见使用模式分析vincent253
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and DesignHo Kim
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹國昭 張
 
Mysql遇到的一些问题
Mysql遇到的一些问题Mysql遇到的一些问题
Mysql遇到的一些问题wang tongchao
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践Wensong Zhang
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介振林 谭
 
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New翀 刘
 

Similar a Another Introduce to Redis (20)

Redis介绍
Redis介绍Redis介绍
Redis介绍
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
Redis
RedisRedis
Redis
 
Redis cluster那些事儿
Redis cluster那些事儿Redis cluster那些事儿
Redis cluster那些事儿
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
Redis 常见使用模式分析
Redis 常见使用模式分析Redis 常见使用模式分析
Redis 常见使用模式分析
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
Mysql遇到的一些问题
Mysql遇到的一些问题Mysql遇到的一些问题
Mysql遇到的一些问题
 
Ceph intro
Ceph introCeph intro
Ceph intro
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介
 
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
 

Another Introduce to Redis