把leveldb嵌入到redis.实现真正的数据持久存储
来源:互联网 发布:php项目需求文档 编辑:程序博客网 时间:2024/05/24 13:28
目前最新版RedisStorage 是基于 redis 2.6.2基础上,加上 leveldb存储引擎。 这个项目是源于 公司项目的passport 用户认证改造。公司一个项目运行了N年。积累了几千万用户,并且每天不断的高速增长中。原有的mysql分表模式已经不适合。所以寻找nosql的解决方案。经过测试目前流行的NOSQL。 最终选中了leveldb. Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持十亿级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。.(leveldb也应用在淘宝上).可惜leveldb只是个存储引擎,没有一个好的服务端。经过几天折腾。我把leveldb加到redis里去。 这样既可以依托redis的高效稳定,又可以不用另起炉灶。一举两得。 现在redis 也有真正的持久存储功能。
现在RedisStorage 已经应用在用户库的存储,和用户签到功能上。
项目地址: https://github.com/qiye/redis-storage
作者: 七夜
QQ: 531020471
QQ群: 62116204(已满)
QQ群: 154249567 (未满)
email: lijinxing@gmail.com
blog: www.cellphp.com
redis new cmdphp code
可能很多人都不知道RedisStorage 和redis 之间的区别。
redis的存储是存储在内存里的, RedisStorage可以选择存储在磁盘里.
当redis崩溃的时候。redis 会从rdb或者aof文件重新读取数据到内存里。如果数据量很大的话。这个初始化是相当的慢。(这就是 redis的假数据持久)。
RedisStorage 是直接存储在 磁盘里。所以不存在这个数据重加载问题。
还有redis 存储是受物理内存限制的,比如你有几千万或者几亿的数据。如果存储在redis里。那得需要多巨大的内存了。使用RedisStorage 就没有物理内存限制这个问题。最大可以存储十亿数据。
最后说一下淘宝的Tair ldb项目。同样基于leveldb 存储引擎。 广泛的用在 登录淘宝、查看商品详情页面、在淘江湖和好友“捣浆糊”等。 说明leveldb 数据引擎的可靠性和海量数据存储。 但是开源版的Tair ldb 并不好用。所以自己写了个基于 leveldb的 server端。
- 把leveldb嵌入到redis.实现真正的数据持久存储
- Python leveldb数据库 把txt的数据存入到leveldb
- 把会话数据持久存储到远程服务器中
- redis的持久化存储
- Java实现Redis持久化到数据库的关键方法
- 数据持久化--数据存储到本地
- redis的数据持久化
- (四十)数据持久化存储的偏好设置实现
- Android实现数据持久化的文件存储
- 利用OkHttp实现数据持久化存储的方案
- Python持久存储--数据保存到文件
- 把dialog嵌入到FormView的注意事项
- 数据的持久化存储
- 数据的持久化存储
- Tair存储引擎之一Leveldb中数据的存储思想
- 数据集cifar10到Caffe支持的lmdb/leveldb转换的实现
- data类型的Url格式:把小数据直接嵌入到Url中
- data类型的Url格式及Base64编码:把小数据直接嵌入到Url中
- MongoDB003 MongoDB安装和启动
- jquery点滴
- Java Robot对象实现服务器屏幕远程监视
- hdu 1754 I Hate It(线段树点区)
- 好的 web 开发人员应该知道的 10 件事
- 把leveldb嵌入到redis.实现真正的数据持久存储
- Drools 5.0.0.M4\drools-5.0.0.M4-bin\lib\core-3.4.2.v_883_R34x.jar
- cocos2d-x 实现静态进度条,文字滚动,以及介绍动态进度条CCProgressTimer
- myeclipse常用快捷键及设置
- python 一个诡异问题的解决
- erlang大牛的博客地址
- 【电脑经常自动注销如何解决】
- accelerated C++笔记一
- 连接Oracle数据库并实现添加数据