好好好好好好好好快啊这个
配置了有一会儿,照着这篇文章弄的使用阿里云CDN全站加速gitpages - 简书

快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快快

阅读全文 »

b站弹幕是用的ws与服务器连接来接收/发送消息的
这个弹幕和礼物的推送我感觉并不是很可靠,很有可能会有网络波动或连接断开的情况,所以我选择多个线程同时监听弹幕服务器的推送(当然多个线程可以选择跑在不同的进程跑在不同的机器上).

然后的问题是,把消息往mq里塞,还要消息不重复传.我这里没有选择用自带去重功能的rocketMQ,而是用的kafka(毕竟kafka性能和多语言客户端支持比rocketMQ好),三个Producer往mq里写消息之前,先试图往Redis里SetNX一个键值对,这个键就根据消息内容生成的,值为空字符串就好,如果写入成功,就由该线程将消息写入mq,如果没有写入成功,则表示有其他线程来往mq里写消息,自己直接返回即可.这里往redis里写的时候 过期时间我也不晓得应该设多少合适…多了占内存少了可能起不到作用…我现在是设的5s

阅读全文 »

1
2
3
private static final MultipartEntityBuilder BUILDER = MultipartEntityBuilder.create().addPart(BIZ, BIZ_VALUE).addPart(CATEGORY, CATEGORY_VALUE);

private static final ThreadLocal<MultipartEntityBuilder> BUILDER_THREAD_LOCAL = ThreadLocal.withInitial(() -> BUILDER);

这样是不行的,作为initial的对象不能是static.
改成下面这样就好了:

阅读全文 »

概述

Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能

阅读全文 »

概览

Sentinel(哨兵)是Redis高可用性解决方案:
由一个或多个哨兵实例组成的哨兵系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器

阅读全文 »

概述

RDB持久化通过保存数据库中的键值对来记录数据库状态
AOF通过Redis服务器所执行的写命令来记录数据库状态

阅读全文 »

概述

RDB持久化既可以手动执行,也可以根据服务器配置选项进行定期执行,该功能可以将某个时间点上的数据库状态保存到一个RDB文件中;RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件生成时的数据库状态

阅读全文 »

数据库键空间

Redis是一个键值对数据库服务器,服务器中的每个数据库都由一个redisDb结构表示,其中,redisDb结构的dict字典保存了数据库中的所有键值对,我们将这个字典成为键空间(key space)

阅读全文 »

概述

压缩列表(ziplist)是列表键和哈希键的底层实现之一
当一个列表只包含少量列表项,并且每个列表项要么是小整数值,要么就是长度比较短的字符串,那么Redis会使用压缩列表来做列表键的底层实现
例如:

阅读全文 »