获得徽章 5
- 推荐一款注重数据安全的im—Startalk(星语),一款高性能的企业级im套件。在去哪儿稳定运行3年多,同时为去哪儿网内部企业办公和商家to b业务,用户端提供的售前及售后咨询。Startalk适用于多种场景,如办公OA,商业客服,各种im场景SDK嵌入。
github.com
328 - 常见缓存问题
## 缓存穿透
缓存穿透是指缓存没有发挥作用,业务系统虽然去缓存查询数据,但缓存中没有数据,业务系统需要再次去存储系统查询数据。
解决方案:设置默认值
## 缓存雪崩
缓存雪崩是指当缓存失效(过期)后引起系统性能急剧下降的情况。
解决方案:
**更新锁**
对缓存更新操作进行加锁保护,保证只有一个线程能够进行缓存更新,未能获取更新锁的线程要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。
**后台更新**
由后台线程来更新缓存,而不是由业务线程来更新缓存,缓存本身的有效期设置为永久,后台线程定时更新缓存。
内存不够时,缓存被“踢掉”造成读取空值的解决方案:
1. 后台定时更新缓存
2. 业务发送消息提醒后台更新缓存
## 缓存热点
对于一些特别热点的数据,如果大部分甚至所有的业务请求都命中同一份缓存数据,则这份数据所在的缓存服务器的压力也很大。
方案:复制多份缓存副本,将请求分散到多个缓存服务器上展开520 - overlord:基于 Go 语言编写的 memcache 和 redis&cluster 的代理及集群管理平台。致力于提供自动化高可用的缓存服务解决方案。自带图形界面的缓存集群管理程序。项目地址:
github.com
「来自 HelloGitHub 第 37 期 Go 分类」:github.com
展开评论42