随笔分类 - 杂谈
摘要:不好的方案 1. 先写 MySQL,再写 Redis 图解说明: 这是一副时序图,描述请求的先后调用顺序; 橘黄色的线是请求 A,黑色的线是请求 B; 橘黄色的文字,是 MySQL 和 Redis 最终不一致的数据; 数据是从 10 更新为 11; 后面所有的图,都是这个含义,不再赘述。 请求 A、
阅读全文
摘要:JDK自带的延时队列 把订单插入DelayQueue中,以超时时间作为排序条件,将订单按照超时时间从小到大排序。 起一个线程不停轮询队列的头部,如果订单的超时时间到了,就出队进行超时处理,并更新订单状态到数据库中。 为了防止机器重启导致内存中的DelayQueue数据丢失,每次机器启动的时候,需要从
阅读全文
摘要:PC版的微信将用户接收到的所有图片加密为DAT文件并保存在本地,具体保存位置就看各自的微信-文件管理设置了。 DAT格式文件不能直接打开,强行查看也就只能看到一些乱码。如果能够找到解密的方式,就可以很方便在本地筛选图片了,虽然大部分可能只是聊天吹水的内容。 加密方式 首先我尝试一下在微信中发送一张新
阅读全文
摘要:在回答这个问题之前,我们先来看两个面试中经常会被问到的Redis问题 Redis为什么这么快? 完全基于内存操作 C语言实现,优化过的数据结构,性能高 单线程,无切换上下文的成本 异步非阻塞IO(多路复用IO) 再深入一点,多路复用IO是怎么实现的? 在Redis源码中,很多地方都调用Linux的e
阅读全文
摘要:记录一下10进制和62进制相互转换的方法。 var chars string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" func encode(num int64) string { bytes := []b
阅读全文