千家信息网

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

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,redis怎么实现数据存储和缓存的一致性?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。方式1:数据库保存数据,redis不persist
千家信息网最后更新 2025年02月01日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安全错误 数据库的锁怎样保障安全 鑫用算力软件开发工程师待遇 进波服务器 上海运行智慧医院软件开发 成都资产管理软件开发 欧盟rapex数据库 中国的网络技术 计算机技术 学校网络安全开展情况总结 苏州鹰空软件开发 阿里服务器购买怎么实名 数据库我的世界 网络安全应急处理报告 美国网络安全法2015 变电站网络安全管理 计算机专业所学课程数据库的代码 网络安全与应用技术专业是什么 R740服务器加硬盘格式化 绘制网络安全组织机构 取当前时间存数据库 学软件开发要学什么内容 网络安全运营岗位职责 四十核心服务器 支付宝网络技术公司是什么 数据库应用开发师报考条件 有关网络安全知识的绘画 2022年最先进的数据库 海南高宇网络技术有限公司游戏是虚假宣传吗 达梦数据库通过了多大容量的测试 律师软件开发公司 医院软件开发岗位要求高吗 诸神之战那个服务器人多
0