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

什么叫做网站整站湖南铁军工程建设有限公司网站

什么叫做网站整站,湖南铁军工程建设有限公司网站,wordpress dux主题5.2,wordpress时间相差8小时为什么使用缓存 高性能#xff0c;高可用#xff0c;高并发。 什么是缓存击穿#xff1f;缓存穿透#xff1f;缓存雪崩#xff1f; 击穿#xff1a;redis中没有查询到数据。解决#xff1a;设置热点数据永不过期。加载DB时防止并发。 穿透#xff1a;redis和mysql中…为什么使用缓存 高性能高可用高并发。 什么是缓存击穿缓存穿透缓存雪崩 击穿redis中没有查询到数据。解决设置热点数据永不过期。加载DB时防止并发。 穿透redis和mysql中都没有查询到数据。解决参数校验将没有数据的情况也存入redis中引入布隆过滤器 雪崩redis中大量数据同时过期。解决设置不同的过期时间。 布隆过滤器 如果判断一个元素不在集合中则一定不在如果判断一个元素在集合中则存在一定误判率布隆过滤器只能加数据不能减数据 对数据进行修改时如何保证Redis与数据库的数据一致 先删缓存后写数据库。存在脏读。 解决 1.先把缓存修改为特殊值(-999)客户端读到特殊值延时查询。 2.延时双删先删缓存再写数据库再删缓存。先写数据库再删缓存。存在缓存删除失败数据不一致。 解决 1.缓存设置过期时间 2.引入MQ保证原子操作。mq设置两个消费者同时删除缓存和db删除失败消息还在MQ重试机制会删除。 通用解决 将热点数据设置为永不过期但再value中写入逻辑过期另起线程扫描key对于逻辑上过期的缓存进行删除。 总结始终只能保证一定时间内的最终一致性。 如何设计一个分布式锁并优化 分布式锁所有进程都能访问到的地方设置一个锁资源让进程来竞争。数据库zookeeperRedis Redis实现分布式锁 SETNX key value当key不存在时就将key设置为value。并返回1.如果key存在就返回0. EXPIRE key locktime设置key的有效时长。 DEL key删除 GETSET key value先GET在SET先返回key对应的值如果没有将key设置成value。 1.最简单的分布式锁SETNX 加锁DEL解锁。 问题1锁获取失败后不回主动解锁这个锁就被锁死了。 解决1给锁设置时长。 问题2SETNX和EXPIRE不是原子性的获取锁进程没到EXPIRE指令就挂了。 解决2将锁的内容设置为过期时间(客户端时间过期时长)SETNX获取失败时拿这个时间和当前时间比对如果过期就先删除锁再重新上锁。 问题3在高并发场景下会产生多个进程同时拿到锁的情况。 解决3SETNX失败后获取锁上时间戳然后用GETSET将自己的过期时间更新上去并获取旧值和之前获取的时间戳不一致就表示这个锁被其他线程占用。 public boolean tryLock(RedisConnection conn) {long nowTIme System.currentTimeMills();long expireTime nowTime 1000;if(conn.SETNX(myKey, 1) 1) {conn.EXPIRE(myKey, 1000);return true;} else {long oldVal conn.get(myTime);if(oldVal ! null oldVal nowTime) {long currnetVal conn.GETSET(myKey, expireTime); //CAS,如果和之前获取的锁不一样就失败if(oldVal currentVal) {conn.SET(mykey, 1000);return true;}return false;}return false;} }注上面优化根本问题是SETNX和EXPIRE指令无法保证原子性。Redis2.6提供了直接执行Lua脚本方式。通过Lua脚本保证原子性。Redission就是在此基础上实现公平锁非公平锁等。 Redis如何设置Key的过期时间 redis设置过期时间1.EXPIRE 2.SETEX 实现原理 1.定期删除每隔一段时间执行一次删除过期key的操作。 2.懒汉式删除当使用getgetset等指令获取数据时判断key是否过期过期先把key删除在执行后面操作。 定期删除会遍历每个databasae默认16个检查当前库中指定个数的key默认20个。随机抽查这些key过期就删除。 海量数据下如何快速查找一条记录 1.使用布隆过滤器快速过滤不存在的记录。使用redis的bitmap结构来实现布隆过滤器。 2.在Redis中建立数据缓存。以普通字符串形式存储(userId-UserInfo)。以hash来存储(userId key - Username field)。以整个hash来存储所有的数据。UserInfo - field用userIdvalue就用user.json。一个hash最多支持2^32-1个键值对。 缓存击穿对不存在的数据也建立key。 缓存过期将热点数据设置成永不过期定期重建缓存使用分布式锁重建缓存。 3.查询优化redis按槽位分配数据自己实现槽位激素那找到记录应分配的机器直接去目标机器上去找。
http://www.zqtcl.cn/news/700611/

相关文章:

  • 机构网站源码如何分析一个网站
  • 免费营销软件网站网站建设与规划实训总结
  • 网站深度功能建筑人才网市场
  • 学校网站建设的意义和应用服务平台管理系统
  • 网站内容规划要包括什么内容wordpress5.2 php版本
  • 山西建设部网站超值的镇江网站建设
  • 做淘宝要网站网站推广外链怎么做
  • 深圳做网站推广哪家好自建网站优缺点
  • 网站建设询价函什么网站可以做会计题目
  • 电脑网站视频怎么下载珠海免费网站制作
  • wordpress menu icon咸阳seo
  • php制作网站网站开发与客户沟通
  • 百度网站建设平台微盟微商城官网
  • 三明网站seo上海中学分数线
  • 青岛谷歌网站建设网站建站公司排名
  • 成都旅游网站建设规划windows优化大师官方
  • 福永网站建设公司哪家好财务公司承兑汇票
  • 青岛快速建站模板制作公司网页什么价位
  • 网站建设公司的经营范围wordpress设置文本编辑器
  • 做网站用微软雅黑侵权吗wordpress 同类文章
  • 免费下载建设银行官方网站自己做网站犯法吗
  • 手机网站html代码附近做广告牌的店
  • 建设和优化网站的步骤wordpress 模板 含数据库
  • 太原制作网站的工作室wordpress弹幕播放器
  • 英语网站开发菏泽做网站优化的
  • 宜昌建设网站公司做网站语言服务器 空间
  • 湖南做网站价格广州网站建设哪家便宜
  • 建筑工程素材资源网站中山做网站建设联系电话
  • 做网站关键词集团网站群建设方案
  • 网站开发有哪些课程网站开发好要租服务器吗