找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1835|回复: 2

redis和ssdb比较

[复制链接]

307

主题

228

回帖

7337

积分

用户组: 真·技术宅

UID
2
精华
76
威望
291 点
宅币
5587 个
贡献
253 次
宅之契约
0 份
在线时间
948 小时
注册时间
2014-1-25
发表于 2021-7-18 19:53:17 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
redis是一款key-value型内存数据库,开发存储功能十分方便而广受欢迎,由于内存存储因此处理相当快
ssdb是一款key-value型硬盘数据库,底层依赖于leveldb,在ssd上存储也非常快,ssdb将leveldb封装成类似redis从而易于操作

redis优点:
1. 社区活跃,更新频繁,功能完善
2. 支持各种复杂场景级连,集群模式,主从模式和哨兵模式。高可用。当主服务器宕机时可自动将从服务器切换为主服务器
3. 支持数据备份,读写分离
redis缺点:
1. 纯内存数据库,因此不适合存放大量数据。

2020年7月份我曾使用过redis2个月,当时将所有用户数据存放在redis中,结果内存超出导致崩溃,永久丢失数据。后来多方查找key-value型硬盘数据库,最终选择ssdb,目前ssdb线上功能稳定,赞一个!
ssdb不像redis那样支持众多功能,但是对于小规模的服务器集群也够用了。最主要的是ssdb用的是硬盘空间,比较难耗尽。redis适合做数据缓存,不适合存储大量数据

下面使用简单场景对比一下redis和ssdb的速度(这里只对比get/set操作,其他操作读者有兴趣可以自行尝试):
环境:CentOS7 CPU:1 MEM:1G DISK:20G     

安装:
  1. git clone [url]https://github.com/redis/redis.git[/url]
  2. cd redis && make && make install
  3. redis-server &
  4. pip3 install redis
复制代码

  1. git clone [url]https://github.com/ideawu/ssdb.git[/url]
  2. cd ssdb && make && make install
  3. /usr/local/ssdb/ssdb-server -d /usr/local/ssdb/ssdb.conf &
  4. pip3 install pyssdb
复制代码


测试:
  1. import random
  2. import time
  3. import redis
  4. import pyssdb

  5. rand_str = lambda n:''.join([random.choice('0123456789abcdef') for i in range(n)])

  6. test_count = 10000
  7. key_l = [rand_str(10) for i in range(test_count)]
  8. val_l = [rand_str(1024) for i in range(test_count)]

  9. cu = redis.Redis()
  10. cu.flushdb()
  11. begin_ts = time.time()
  12. for i in range(test_count):
  13.     cu.set(key_l[i], val_l[i])
  14.     cu.get(key_l[i])
  15. diff_ts = (time.time() - begin_ts) * 1000
  16. print("redis timeelapse", diff_ts)

  17. cu = pyssdb.Client()
  18. cu.flushdb()
  19. begin_ts = time.time()
  20. for i in range(test_count):
  21.     cu.set(key_l[i], val_l[i])
  22.     cu.get(key_l[i])
  23. diff_ts = (time.time() - begin_ts) * 1000
  24. print("ssdb timeelapse", diff_ts)
复制代码


结果:
redis timeelapse 1965.770959854126
ssdb timeelapse 2156.818389892578

可见对于get/set这种最基本操作,redis略快于ssdb,毕竟是内存操作

回复

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-20 15:30 , Processed in 0.035336 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表