千家信息网

redis怎么实现数据存储和缓存的一致性

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,redis怎么实现数据存储和缓存的一致性?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。方式1:数据库保存数据,redis不persist
千家信息网最后更新 2024年11月11日redis怎么实现数据存储和缓存的一致性

redis怎么实现数据存储和缓存的一致性?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

方式1:

数据库保存数据,redis不persist redis启动后,从数据库加载数据 不要求强一致实时性的读请求,都由redis处理 要求强一致实时性的读请求,由数据库处理 写请求有2种处理方式,由数据库处理

应用先写道数据库,然后更新redis

应用先写道数据库,然后其它daemon同步到redis

优点:redis启动不用处理redis数据和数据库不一致

缺点:redis启动给数据库很大的读压力

方式2:

数据库和redis分别处理不同的数据类型,数据库处理要求强一致实时性的数据,例如金融数据、交易数据;Redis处理不要求强一致实时性的数据,例如网站最热贴排行榜

redis和MySQL数据的同步,代码级别大致可以这样做: 读: 读redis->没有,读mysql->把mysql数据写回redis 写: 写mysql->成功,写redis

并发不高的情况: 读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取; 写: 写mysql->成功,再写redis;

并发高的情况: 读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取; 写:异步话,先写入redis的缓存,就直接返回;定期或特定动作将数据保存到mysql,可以做到多次更新,一次保存;

--备注:如果写redis要使用redis的事务:

127.0.0.1:6379> WATCH idOK127.0.0.1:6379> MULTIOK127.0.0.1:6379> INCR idQUEUED127.0.0.1:6379> EXEC1) (integer) 342183127.0.0.1:6379>

方式3:

使用lua脚本:redis在使用lua使用同时只允许一个脚本执行,符合事务的原子性,但一个lua脚本不能执行时间过大,不然会阻塞

EVAL

EVAL命令对 Lua 脚本进行执行求值。

语法:

EVAL script numkeys key [key …] arg [arg …]
script lua脚本内容 注意的是脚本不应该是Lua函数。numkeys 表示指定键名参数的个数。key [key ...] 表示脚本对应的key值列表 在脚本中可以使用KEYS[1] KEYS[2] KEYS[3]KEYS[n] n从1开始 。arg [arg ...] 命名行中传递的参数列表 在脚本中可以使用ARGV[1] ARGV[2] ARGV[3]ARGV[n] n从1开始 。

一个示例胜过千言万语的解释

eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 id name 3 mytest

执行上面脚本返回

1) "id"2) "name"3) "2"4) "mytest"

关于redis实现数据存储和缓存的一致性的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 数据库 脚本 一致 处理 实时 实时性 方式 缓存 更多 一致性 存储 成功 事务 内容 参数 情况 问题 同步 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 2012软件开发工程 山西华为服务器虚拟化解决方案 网络安全距离怎么计算 瑞友天翼客户端报服务器没有启动 个人网络安全意识提升 软件开发文档分为 软件开发公司简介模板 软件开发手册 什么意思 山东蓝狐网络技术有... 庆阳大数据软件开发工程师专业 广宗实验小学网络安全宣传周 stm32软件开发入门 奥迪电梯控制系统和网络技术 数据库服务器更换ip 网络安全机密与解决方案 德儿网络技术有限公司 秦皇岛媒体服务器价格 软件开发科目核算的是什么 通勤人员不在数据库 网络安全宣传海报设计ps 怎么查找公司大数据库 数据库copy的用法 数据库属性窗口在哪里设置 开汇互联网科技有限公司 徐汇区购买网络技术服务材料 天堂2血盟该怎么选服务器 金铲铲之战所有服务器都进不去 简单的信息网络安全试题 网络安全提醒怎样删除 网络安全徐国爱课后习题
0