当前位置: 首页 > news >正文

软件开发建设网站广州网络公司策划

软件开发建设网站,广州网络公司策划,网页传奇哪个最好玩,怎么做网站推广的步骤背景 现在我们在面向增删改查开发时,数据库数据量大时或者对响应要求较快,我们就需要用到Redis来拿取数据。 Redis:是一种高性能的内存数据库,它将数据以键值对的形式存储在内存中,具有读写速度快、支持多种数据类型…

背景

现在我们在面向增删改查开发时,数据库数据量大时或者对响应要求较快,我们就需要用到Redis来拿取数据。

Redis:是一种高性能的内存数据库,它将数据以键值对的形式存储在内存中,具有读写速度快、支持多种数据类型、原子性操作、丰富的特性等优势。

优势:

  1. 性能极高:Redis的读速度可以达到110000次/s,写速度可以达到81000次/s,这主要得益于它基于内存存储的特点,以及其单线程事件驱动架构的设计。
  2. 丰富的数据类型:Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储,这些数据结构可以满足多种应用场景的需求。
  3. 原子性操作:Redis的所有操作都是原子性的,这意味着这些操作要么成功执行,要么失败完全不执行。这为Redis在实现事务和并发控制方面提供了极大的便利。
  4. 丰富的特性:Redis还支持发布/订阅、通知、键过期、事务、管道、Lua脚本、集群分片和数据复制等功能。这些特性使得Redis在实现消息队列、缓存系统、分布式系统等方面具有很大的优势。
  5. 支持持久化:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。这使得Redis的数据不会因为重启或者宕机而丢失。
  6. 支持备份和恢复:Redis支持数据的备份和恢复,即master-slave模式的数据备份。这为Redis的数据安全提供了保障。
  7. 丰富的客户端:Redis支持各种各样的语言的客户端接入,包括Python、Java、C#、PHP等。这使得开发者可以使用自己熟悉的编程语言来操作Redis。

综上所述,对Redis有个简单的理解。

常用方式

  1. 启动项目时将热点数据放入redis缓存中(如果没这样做,直接看第二点)
  2. 用户请求过来之后,先查缓存有没有数据,如果有则直接返回。
  3. 如果缓存没数据,再继续查数据库。
  4. 如果数据库有数据,则将查询出来的数据,放入缓存中,然后返回该数据。
  5. 如果数据库也没数据,则直接返回空。

此时,问题来了,假如说我们的热点数据是人员信息,此时新增了一条张三的信息,你再去缓存拿取的时候是不会有张三这条信息的,因为数据只是更新在了数据库并没有更新在缓存中。此时测试人员可能就会有疑问,明明新增成功了,但是数据呢?所以我们需要保证Redis缓存与数据库数据一致的问题。

解决

1 先删缓存,再更新数据库

先删除缓存,数据库还没有更新成功,此时如果读取缓存,缓存不存在,去数据库中读取到的是旧值,缓存不一致发生。

1.1 解决方案:延时双删

延时双删的方案的思路是,为了避免更新数据库的时候,其他线程从缓存中读取不到数据,就在更新完数据库之后,再 sleep 一段时间,然后再次删除缓存。

sleep 的时间要对业务读写缓存的时间做出评估,sleep 时间大于读写缓存的时间即可。

流程如下:

  1. 线程1删除缓存,然后去更新数据库
  2. 线程2来读缓存,发现缓存已经被删除,所以直接从数据库中读取,这时候由于线程1还没有更新完成,所以读到的是旧值,然后把旧值写入缓存
  3. 线程1,根据估算的时间,sleep,由于sleep的时间大于线程2读数据+写缓存的时间,所以缓存被再次删除
  4. 如果还有其他线程来读取缓存的话,就会再次从数据库中读取到最新值。

2 先更新数据库,再删除缓存

如果反过来操作,先更新数据库,再删除缓存呢?

这个就更明显的问题了,更新数据库成功,如果删除缓存失败或者还没有来得及删除,那么,其他线程从缓存中读取到的就是旧值,还是会发生不一致。

2.1 解决方案一:借用消息中间件帮助完成

先更新数据库,成功后往消息队列发消息,消费到消息后再删除缓存,借助消息队列的重试机制来实现,达到最终一致性的效果。

问题:
  1. 引入消息中间件之后,问题更复杂了,怎么保证消息不丢失,怎么样保证消息的有序性等问题随之而来。
  2. 就算更新数据库和删除缓存都没有发生问题,消息的延迟也会带来短暂的不一致性,不过这个延迟相对来说还是可以接受的
2.2 设置缓存过期时间

每次放入缓存的时候,设置一个过期时间,比如 5 分钟,以后的操作只修改数据库,不操作缓存,等待缓存超时后从数据库重新读取。

问题:

如果数据更新的特别频繁,不一致性的问题就很麻烦

http://www.yayakq.cn/news/922726/

相关文章:

  • 常德行业网站网站给部分文字做遮挡代码
  • 石家庄网站建设方案咨询中山网站建设seo优化营销制作设计
  • 网站推广策略都有哪些网络优化seo薪酬
  • 做网站教程流程天猫网上商城
  • 百度网站的总结wordpress文章编辑函数
  • 开发网站的目标百度网站降权
  • 网站建设要在哪学深圳东门老街附近景点
  • 做网站的什么行业好出单网站后台管理维护 不懂编程
  • 智慧团建网页电脑版登录网站免费有效的推广网站
  • 物流网站做那个好网站自适应怎么做
  • 临沂莒南网站建设七牛wordpress插件
  • 做网站销售战队头像在线制作免费
  • 郑州视频网站建设大概多少钱网站上的图片一般多大
  • 网站浮动窗口怎么做百度seo网站优化
  • 广州网站推广找哪里安徽网站开发费用
  • 广东企业网站建设多少钱山西省建设工程招投标监督网站
  • 网站建设电话销售话术模板大全h5编辑软件
  • 现在哪个行业做网站需求多点广州抖音seo公司
  • 用enfold做的网站北京手机网站制作公司
  • 网站被301企业微信app下载安装官网电脑版
  • 企业网站功能怎么设计南通住房和城乡建设厅网站
  • 珠海手机网站建设费用如何用ps做网站平面图
  • 企业网站设计过程中必须重视的问题之一哪个网站可以做前端项目
  • 电商网站制作教程北京数字智慧展厅设计咨询
  • 深圳网站开发哪个好页面设计流程
  • 网站网站做代理赚钱吗平面图用什么软件做
  • 不要域名能建网站么redhat7部署wordpress
  • 360站长工具网站不备案违法吗
  • 中煤第一建设公司网站网站制作寻找客户
  • 网站建设对于企业发展的优势电子商务网站设计物流方案