redis中如何保持关系数据库里的一行记录

【字号: 日期:2022-08-28浏览:28作者:雯心

问题描述

要将关系数据库中表的一行记录保持到redis中,在redis里要采用哪种数据类型,怎么保存?希望能举个具体示例

问题解答

回答1:

将java对象 序列化,然后以字节数组存储

回答2:

可以直接用数据库的主键作为redis的可以,比如<YOUR_PREFIX><PRIMARY_KEY>这种,内容的话,比如直接把数据表记录json之后就可以

然后是一致性的问题

第一种方案是把redis的作为cache来使用,只在按照主键来读取记录时,先检查redis里面(get)有没有,如果没有则从数据库里面取,同时set redis中对应的值,在set时最好给记录设置一个expire时间,这样即使没有主动的清掉脏数据,一段时间后也可以通过expire的机制自动拿到新的值。在数据表记录变动时,直接删除掉redis中的记录即可。这个是我比较推荐的比较稳妥的做法。

第二种方案是直接在redis中处理全部的数据读写,只有在特定时机才把数据写回数据库中。有关写回机制,可以考虑使用一个带有消息队列,在每次redis有修改时,异步的让数据写回数据,可以通过一个timestamp来保证写回到数据库的数据是最新的;或者可以考虑使用redis在expire时机的通知机制(不过这个机制没有保障,见http://redis.io/topics/notifications)。

回答3:

这个还是挺麻烦的可以参考一下这篇文章http://www.cnblogs.com/enjiex/p/3618546.html

是可以支持简单的增删改查,而且可以结合redis的事务实现简单的功能但是想要实现rdbms那套sql基本操作都很麻烦

综上

回答4:

乖乖地读手册吧,别人给你的答案木有用的,手册里讲得很清楚,看完手册再考虑应用场景,到实用阶段的时候,有一些封装的第三方api可以调用,实际上你自己写也一样,从套接字开始写起,保管你对协议,语言,网络都有个新的认识

相关文章: