数据持久化方案 redisDB

未知
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修改

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Redis内存存储结构分析

1 Redis 内存存储结构 本文是基于 Redis-v2.2.4 版本进行分析. 1.1 Redis 内存存储总体结构 Redis 是支持多key-value数据库(表)的,并用 RedisDb 来表示一个key-value数据库(表). redisServe...

2013/05/19 17:22
198
0
Redis 数据库、键过期的实现

之前的文章讲解了 Redis 的数据结构,这回就可以看看作为内存数据库,Redis 是怎么存储数据的。以及键是怎么过期的。 阅读这篇文章你将会了解到: Redis 的数据库实现 Redis 键过期的策略 数...

05/11 16:45
23
0
从零单排学Redis【白银】

前言 只有光头才能变强 今天继续来学习Redis,上一篇从零单排学Redis【青铜】已经将Redis常用的数据结构过了一遍了。如果还没看的同学可以先去看一遍再回来~ 这篇主要讲的内容有: Redis服务...

11/08 16:49
10
0
redis的主从配置和使用

1, redis配置文件常用选项说明 daemonize no 说明:是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。 pidfile /var/run/redis.pid 说明:redis-server的pid文件...

2013/04/16 11:04
389
0
深入理解Redis主键失效原理及实现机制

作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Reids也不例外。在Redis提供的诸多命令中, EXPIRE、 EXPIREAT、 PEXPIRE、 PEXPIREAT以及SETEX和PSETEX均可以用来设...

2013/11/22 17:44
227
0
Redis 数据结构与内存管理策略(下)

字典(dict) dict 字典是基于 hash算法 来实现,是 Hash 数据类型的底层存储数据结构。我们来看下 redis 3.0.0 版本的 dict.h 头文件定义。 typedef struct dict { dictType *type; void *...

11/13 17:46
0
0
Redis源码分析系列六:initserver中

server.db = zmalloc(sizeof(redisDb)*server.dbnum); //开辟缓冲区 listenToPort(server.port,server.ipfd,&server.ipfd_count); 显然这个函数是监听端口 跟踪这个函数,进入,发现最终是掉...

2013/10/17 23:50
169
0
redis 分析

1 简介 redis是一个类似memcached的key/value存储系统,它支持存储的value类型相对较多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。在此基础上,redis支持各种不同方式的...

2011/09/26 23:07
411
0
深入理解redis

本文将主要从Redis适用范围,与Memcached, Java容器对比,核心功能(Pipelining, Pub/Sub,LRU,Transactions, Persistence, Replication),分布式架构设计,Cluster, 内部实现及数据结...

08/19 15:22
41
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部