redis与数据库同步的问题
这几天一直在弄redis,功夫不负有心人,算是把它给弄好了,今天上午封装了一下操作redis的类,测试都能通了。但是有一个问题,就是redis里的数据怎么与数据库同步呢??我的想法是用java写一个定时任务,定时的从数据库里查数据,然后放到redis里面,或者做一个内存刷新按钮。不过我听说,用python做redis与数据库同步更简单,因为我不懂python,所以请大神指教,欢迎贴代码!!!
《redis 入门手册(中文)》里有写,你的问题应该是持久化吧?
给你贴一段不知道有没有帮助:
通常Redis 将数据存储在内存中或虚拟内存中,它是通过以下两种方式实现对数据的持久化。
快照方式:(默认持久化方式)
这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为
dump.rdb。
客户端也可以使用save 或者bgsave 命令通知redis 做一次快照持久化。save 操作是在主线程中保存快照的,由于redis 是用一个主线程
... ...
日志追加方式
这种方式redis 会将每一个收到的写命令都通过write 函数追加到文件中(默认
appendonly.aof)。当redis 重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于操作系统会在内核中缓存write 做的修改,所以可能不能立即写到磁盘上。这样的持久化还是有
... ...
kv库不是你这样用的吧,一般是反过来用的,关系数据库数据写到kv库,默认从kv库读数据,读不到再去sql读然后同步到kv。
非要从kv写入到关系数据库,一般也是用在延迟写入上,写操作先存到kv库里,定时再写入到sql里,哪些key已经写入,哪些还没写入,这个一般是用一个长索引数值控制的
引用来自“Jerry_Z”的答案
《redis 入门手册(中文)》里有写,你的问题应该是持久化吧?
给你贴一段不知道有没有帮助:
通常Redis 将数据存储在内存中或虚拟内存中,它是通过以下两种方式实现对数据的持久化。
快照方式:(默认持久化方式)
这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为
dump.rdb。
客户端也可以使用save 或者bgsave 命令通知redis 做一次快照持久化。save 操作是在主线程中保存快照的,由于redis 是用一个主线程
... ...
日志追加方式
这种方式redis 会将每一个收到的写命令都通过write 函数追加到文件中(默认
appendonly.aof)。当redis 重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于操作系统会在内核中缓存write 做的修改,所以可能不能立即写到磁盘上。这样的持久化还是有
... ...
引用来自“xugang”的答案
kv库不是你这样用的吧,一般是反过来用的,关系数据库数据写到kv库,默认从kv库读数据,读不到再去sql读然后同步到kv。
非要从kv写入到关系数据库,一般也是用在延迟写入上,写操作先存到kv库里,定时再写入到sql里,哪些key已经写入,哪些还没写入,这个一般是用一个长索引数值控制的
引用来自“汪林”的答案
引用来自“xugang”的答案
kv库不是你这样用的吧,一般是反过来用的,关系数据库数据写到kv库,默认从kv库读数据,读不到再去sql读然后同步到kv。
非要从kv写入到关系数据库,一般也是用在延迟写入上,写操作先存到kv库里,定时再写入到sql里,哪些key已经写入,哪些还没写入,这个一般是用一个长索引数值控制的