SlideShare ist ein Scribd-Unternehmen logo
1 von 28
廖旭
xliao@corp.netease.com
   新浪微博 @达达尼奥
               2012.5
Thinking in nosql

                                廖旭
               xliao@corp.netease.com
                  新浪微博 @达达尼奥
                              2012.5
Thinking in nosql
 redis彩票项目试用总结及展望


                                 廖旭
                xliao@corp.netease.com
                   新浪微博 @达达尼奥
                               2012.5
Redis(REmote DIctionary Server)
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.

The authors :
Salvatore Sanfilippo and Pieter
Noordhuis (sponsored by
VMware).

Lastest stable : 2.4
Who’s using redis
Why nosql

数据量越来越大

计算越来越    杂

低延迟要求

sql也许并不是处理分层数据(hierarchical data)
的最好方式,它擅长的是表数据
Redis vs Memcached

读写性能上差      不大

redis支持更多数据类型,memcached只有kv

redis支持持久化(persistence)和数据同步
(replication),memcached不支持
Data types

strings

lists

hashes

sets

sorted sets
Data type - Strings

binary safe

max 512M

atomic counters(incr, decr)

getbit, setbit

setnx(transaction lock)
Data type - Lists

max 2^32 - 1 elements

lpush,rpush(o(1) time complexity)

blpop,brpop(blocking queue)

ziplist(list-max-ziplist-entries, list-max-
ziplist-value)
Data type - Hashes


max 2^32 - 1 field value pairs

适合存储对象(hmset, hmget)

zipmap(彩票的package、stakeOrder存储)
Data type - Sets

max 2^32 - 1 members

no repeated members

插入、删除、exist操作全部0(1)

取交集、并集、diff

zipset
Data type - Sorted Sets


 和sets类似,只是每一项都有个score值

 可以合并,score值加

 应用场景:排名榜
Features

pipeline

transaction

expire

pub/sub

lua script(supported in 2.6+)
Pipeline

Redis is a TCP server using the client-server
model and what is called a Request/Response
protocol.

频繁创建连接的          销是不可接受的

可以一次发送多个命令,不必等待之前命令的
reply
Transaction(1)

不同于rdbms的事务

transaction中的所有指令以顺序的原子的方式
执行

所有指令要么全部执行要么全不执行
Transaction(2)
Transaction(2)
But
Transaction(2)
But
      无法使用前一指令的结果来操作下一指令

      如果一条指令执行失败,后续指令会继续执行

      watch, multi, exec



      2.6版本的lua script支持也可以实现
Transaction(2)
But
      无法使用前一指令的结果来操作下一指令

      如果一条指令执行失败,后续指令会继续执行

      watch, multi, exec



      2.6版本的lua script支持也可以实现
Administration


Replication

Persistence

Security

Sharding(client)
Replication

master-slave模式

master可有多个slave,slave也可以再有slave

master和slave端都是non-blocking

可实现读写分离(2.6 slave-read-only)、数据备
份、灾难
Persistence



rdb

aof
Security

bind ip

password

ssl proxy

rename-command

nosql injection(no string escape, it’s safe)
Breaking convention

原始号码的存储

package, stakeorder的存储优化

order, package, stakeorder层级   系的读写

弃用transactional

发掘最优的api组合
Brainstorming

号码池

号码统计

活动排名

...
Tutorials


http://redis.io

http://redis.readthedocs.org/en/latest/
index.html

http://blog.nosqlfan.com
Thanks

    Learn to fail or fail to learn

coming next - go语言-互联网时代的C语言

Weitere ähnliche Inhalte

Ähnlich wie Redis slideshare

Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年yp_fangdong
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案YANGL *
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享Cam Song
 
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性Xuefeng Zhang
 
twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC
 
Tdsql在微众银行核心交易系统中的实践 雷海林
Tdsql在微众银行核心交易系统中的实践 雷海林Tdsql在微众银行核心交易系统中的实践 雷海林
Tdsql在微众银行核心交易系统中的实践 雷海林Cheng Feng
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & developmentXuefeng Zhang
 
自助工具助Dba提升效率
自助工具助Dba提升效率自助工具助Dba提升效率
自助工具助Dba提升效率Chao Zhu
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicecong lei
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍 yubao fu
 
百度分布式数据实践与进展
百度分布式数据实践与进展百度分布式数据实践与进展
百度分布式数据实践与进展yp_fangdong
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试kaerseng
 
Thinking in React by Deot
Thinking in React by Deot Thinking in React by Deot
Thinking in React by Deot 荣德 周
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
Redis介绍
Redis介绍Redis介绍
Redis介绍锐 张
 

Ähnlich wie Redis slideshare (20)

Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享
 
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
 
twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結
 
Tdsql在微众银行核心交易系统中的实践 雷海林
Tdsql在微众银行核心交易系统中的实践 雷海林Tdsql在微众银行核心交易系统中的实践 雷海林
Tdsql在微众银行核心交易系统中的实践 雷海林
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
自助工具助Dba提升效率
自助工具助Dba提升效率自助工具助Dba提升效率
自助工具助Dba提升效率
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
 
Sae
SaeSae
Sae
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍
 
百度分布式数据实践与进展
百度分布式数据实践与进展百度分布式数据实践与进展
百度分布式数据实践与进展
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试
 
Thinking in React by Deot
Thinking in React by Deot Thinking in React by Deot
Thinking in React by Deot
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 

Redis slideshare

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n