redisDB 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
redisDB 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
redisDB 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 未知
开发语言 C/C++ 查看源码 »
操作系统 Linux
软件类型 开源软件
开源组织
地区 国产
投 递 者 红薯
适用人群 未知
收录时间 2013-12-17

软件简介

基于redis和mysql的数据持久化方案

redis运行时连接数据库 cache失效时同步读mysql, 数据修改时候通过消息队列通知DB线程写mysql reids.conf增加几个配置选项 mysql_host
mysql_port
mysql_user
mysql_pwd
mysql_dbname
persistence_mmap_file: 消息列队指定的mmap映射文件
write_thread_num 写DB线程数

对key的命名有规范 "tablename_ID(int)"形式, 如果仅仅是 "tablename" 则系统解析的时候ID默认为0 例如 “user_1” 系统会自动对应"user"表的ID为1的行 “user_0” 或者 "user" 系统会自动对应"user"表的ID为0的行

目前支持 string, list, zset, 以及incr 格式, mysql表结构不需要自己定义,系统自动映射 消息队列采用无锁队列, 支持mmap与malloc两种方式, 采用mmap方式理论上在程序意外死掉的时候不丢失队列数据 经过压力测试, 修改前和修改后的redis性能损耗为10% - 20%, 后期会考虑再进行优化 另外因为是同步读DB, 如果大量的cache失效会带来严重的io阻塞, 从而影响性能, 后期考虑加入配置选项在redis启动以后主动从db恢复数据

基于redis 2.6.16修改

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
20 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部