数据持久化方案redisDB.zip

时间:2022-08-05 20:52:57
【文件属性】:

文件名称:数据持久化方案redisDB.zip

文件大小:417KB

文件格式:ZIP

更新时间:2022-08-05 20:52:57

开源项目

基于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修改 标签:redisDB  redis


【文件预览】:
redisDB-master
----src()
--------config.c(46KB)
--------ae.h(4KB)
--------object.c(19KB)
--------pqsort.h(2KB)
--------db.c(23KB)
--------persistence.c(6KB)
--------sds.c(24KB)
--------scripting.c(36KB)
--------sha1.h(470B)
--------anet.h(3KB)
--------mysqlDB.c(30KB)
--------pqsort.c(6KB)
--------replication.c(32KB)
--------sha1.c(8KB)
--------.make-prerequisites(0B)
--------intset.h(2KB)
--------help.h(21KB)
--------bio.c(9KB)
--------redis-check-dump.c(23KB)
--------sds.h(3KB)
--------anet.c(13KB)
--------mysqlDB.h(1KB)
--------ae_kqueue.c(4KB)
--------endianconv.h(2KB)
--------redis.c(118KB)
--------lzf_d.c(4KB)
--------redis.h(52KB)
--------migrate.c(8KB)
--------rdb.c(46KB)
--------release.h(62B)
--------.make-settings(307B)
--------redisassert.h(2KB)
--------rio.c(7KB)
--------lzf_c.c(10KB)
--------zipmap.h(3KB)
--------zipmap.c(17KB)
--------adlist.h(3KB)
--------zmalloc.c(10KB)
--------sort.c(20KB)
--------rand.c(4KB)
--------lzfP.h(5KB)
--------crc64.c(10KB)
--------t_hash.c(23KB)
--------ziplist.c(53KB)
--------testhelp.h(2KB)
--------ae_evport.c(11KB)
--------t_set.c(28KB)
--------valgrind.sup(225B)
--------util.c(17KB)
--------sentinel.c(125KB)
--------ae_select.c(4KB)
--------rio.h(4KB)
--------bitops.c(16KB)
--------config.h(6KB)
--------redis-benchmark.c(28KB)
--------ae_epoll.c(5KB)
--------release.c(2KB)
--------fmacros.h(2KB)
--------memtest.c(9KB)
--------joblist.c(7KB)
--------syncio.c(6KB)
--------Makefile(7KB)
--------t_list.c(41KB)
--------adlist.c(10KB)
--------ziplist.h(3KB)
--------dict.h(6KB)
--------pubsub.c(11KB)
--------util.h(2KB)
--------Makefile.dep(6KB)
--------redis-check-aof.c(6KB)
--------redis-cli.c(51KB)
--------intset.c(16KB)
--------version.h(31B)
--------ae.c(15KB)
--------t_zset.c(73KB)
--------multi.c(11KB)
--------bio.h(2KB)
--------joblist.h(951B)
--------dict.c(27KB)
--------.gitignore(42B)
--------rand.h(2KB)
--------slowlog.c(7KB)
--------slowlog.h(2KB)
--------rdb.h(5KB)
--------aof.c(48KB)
--------lzf.h(4KB)
--------endianconv.c(4KB)
--------asciilogo.h(3KB)
--------networking.c(51KB)
--------t_string.c(15KB)
--------debug.c(31KB)
--------persistence.h(1KB)
--------solarisfixes.h(2KB)
--------mkreleasehdr.sh(476B)
--------zmalloc.h(3KB)
----benchmark.py(1KB)
----README.md(1KB)
----redis.conf(25KB)

网友评论