SSDB(LevelDB server) vs Redis

9,039 views

Published on

SSDB - A LevelDB server with zset data type

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,039
On SlideShare
0
From Embeds
0
Number of Embeds
3,342
Actions
Shares
0
Downloads
87
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

SSDB(LevelDB server) vs Redis

  1. 1. SSDB(LevelDB) vs Redis ideawu https://code.google.com/p/zdb/
  2. 2. 问题 数据有 : a, b, c, d, e(5 个单位 ) 内存容量 : 4 个单位 硬盘容量 : 100 个单位 问题 :  内存放不下所有数据  数据可以放硬盘 , 但硬盘较慢
  3. 3. Redis 存储结构memory aof(log)a=1 a=1b=2 b=2c=1 a=3d=1 c=6  a=1e is LOST! d=7  e=3  d=1  b=2  c=3  a=1  c=1
  4. 4. Redis 查找 先查找内存 如果内存中没找到 , 那就真的没找到 上例中 , e 因内存容量限制被丢弃了 ...
  5. 5. LevelDB 内部存储结构memory log level 0 ... level na=1 a=1 a=3   a=1b=2 b=2 b=2   b=2c=1 a=3 c=6   c=1d=7 c=6                 a=1 a=1   d=7  d=7 d=7   e=3  e=3 e=3    d=1                 b=2 a=1      c=3 b=2      a=1 c=1      c=1      
  6. 6. LevelDB 查找 先查内存 直接跳过 log, 查 level0  level0 有重叠 , 从新到旧查找 查 level1...
  7. 7. Redis 和 LevelDB 简单介绍 Redis  网络字典服务器  除 KV, 支持丰富的数据类型 , 如 list, zset  在互联网公司有广泛应用  C 语言开发 LevelDB  Google 公司 Bigtable 系统存储引擎的开源版本  KV 存储 , 数据有序  应用不广泛 , 作为 Chrome 的内嵌存储引擎 , 作为一 些开源分布式系统的存储引擎  C++ 语言开发
  8. 8. Redis vs LevelDBRedis LevelDB 持久化存储 写速度快   完全内存查找 , 速度极快 若内存找不到 , 再找硬盘 , 速度受影响网络支持 只是一个 C/C++ 编程语言库   受限于内存容量 , 硬盘只作为备份 存储容量不受内存容量限制 , 依赖硬盘主从同步机制不完善  
  9. 9. SSDB - LevelDB 服务器 基于 LevelDB 引擎封装网络服务 (epoll) 替代 Redis 或者和 Redis 搭配使用 支持 Redis 的常用关键数据结构 客户端 API 与 Redis 相似
  10. 10. SSDB vs Redis
  11. 11. SSDB vs Redis 随机读写测试 在 M 个写连接和 N 个读连接持久请求的情况下 , +1 个连接 , 分别测试读写性能 用 PHP 进行读和写 , SSDB 和 Redis 代码基本一 样 用 Python fork 多进程
  12. 12. 随机读写 – 0 写 0 读 +1 测
  13. 13. 随机读写 – 1 写 4 读 +1 测
  14. 14. 随机读写 – 2 写 8 读 +1 测
  15. 15. 随机读写 – 3 写 12 读 +1 测
  16. 16. 随机读写 – 4 写 16 读 +1 测
  17. 17. SSDB Redis 命令对比 - KVkeys() 返回全部数据 , scan() 支持分页
  18. 18. SSDB Redis 命令对比 - ZSETzRangeByScore(name, score_start, score_end, options);zscan(name, key_start, score_start, score_end, limit);
  19. 19. SSDB Redis 命令对比 - HASHMAPSSDB 的 hkeys/hscan 支持分页
  20. 20. 支持断点续传的主从同步 Redis 的主从同步一旦异常中断 , 就得从头再来 SSDB 可以从上一个断点开始同步
  21. 21. TODO 性能 分布式
  22. 22. 链接 https://code.google.com/p/zdb/ https://code.google.com/p/leveldb/ http://redis.io/ https://github.com/ideawu/ssdb
  23. 23. FINThanks

×