缓存存储,也是数据的冗余。
(1)数据库访问数据,磁盘IO,慢;
(2)缓存里访问数据,存操作,快;
(3)数据库里的热数据,可在缓存冗余一份;
(4)先访问缓存,如果命中,能大大的提升访问速度,降低数据库压力;
这些,是缓存的核心读加速原理。
...
云聊IM
2年前 (2019-02-20)
640℃
允许cache miss的场景,不管是memcache还是redis,当被缓存的内容变化时,是改修改缓存,还是淘汰缓存?这是今天将要讨论的话题。
问:KV缓存都缓存了一些什么数据?答:(1)朴素类型的数据,例如:int(2)序列化后的对象,例如:User实体,本质是bin...
云聊IM
2年前 (2019-02-18)
501℃
缓存,是互联网分层架构中,非常重要的一个部分,通常用它来降低数据库压力,提升系统整体性能,缩短访问时间。
有架构师说“缓存是万金油,哪里有问题,加个缓存,就能优化”,缓存的滥用,可能会导致一些错误用法。
缓存,你真的用对了么?
误用一:把缓存作为服务与服务之间...
云聊IM
2年前 (2019-02-17)
535℃
服务之间“通过缓存传递数据”设计合理性的讨论。 互联网分层架构的本质,是数据的移动。
如上图:
service-A将数据放入cacheservice-B从cache里读取数据
先说结论
楼主旗帜鲜明的反对“服务之间通过缓存传递数据”。
...
云聊IM
2年前 (2019-02-16)
590℃
上图是一个典型的互联网分层架构:
客户端层:典型调用方是browser或者APP站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json数据-缓存层:加速访问存储数据-数据库层:固化数据存储
如果实施了服务化,这个分层架构图可能是这样:
...
云聊IM
2年前 (2019-02-15)
749℃
除了常见的redis/memcache等进程外缓存服务,缓存还有一种常见的玩法,进程内缓存。
什么是进程内缓存?
答:将一些数据缓存在站点,或者服务的进程内,这就是进程内缓存。
进程内缓存的实现载体,最简单的,可以是一个带锁的Map。又或者,可以使用第三方...
云聊IM
2年前 (2019-02-13)
566℃
很多业务都需要考虑消息投递的顺序性:
单聊消息投递,保证发送方发送顺序与接收方展现顺序一致群聊消息投递,保证所有接收方展现顺序一致充值支付消息,保证同一个用户发起的请求在服务端执行序列一致
消息顺序性是分布式系统架构设计中非常难的问题,有什么常见优化实践呢?
...
云聊IM
2年前 (2019-01-14)
839℃
群聊是多人社交的基本诉求,一个群友在群内发了一条消息,期望做到:
(1)在线的群友能第一时间收到消息;
(2)离线的群友能在登陆后收到消息;
群消息的实时性、可达性、离线消息的复杂度,要远高于单对单消息。
常见的群消息流程如何?
群业务的核心数据结...
云聊IM
2年前 (2019-01-14)
673℃
实现类似微信聊天中的消息的置顶删除效果
Java代码:
package com.example.fangweixin;
import java.util.ArrayList;
import android.app.AlertDialog;
impor...
云聊IM
2年前 (2018-11-19)
1148℃
微信的聊天界面是挺漂亮的,每条消息都带一个气泡,给人一种很清新的感觉,其实实现起来也不是那么的难,下面我们就来实现一下。
老规矩,先贴上源代码:http://download.csdn.net/detail/weidi1989/4588782
再来看一下实现的效果图:
OK,下...
云聊IM
2年前 (2018-11-17)
1177℃