mysql中UUID产生的数据,用什么数据类型存储?
因为还没有写入MySQL,所以你在把数据写入Redis时,需要设计一个key来唯一标识一条数据.
MySQL表中应该设置一个唯一字段用于存储这个key.
这个key可以是一个由程序即时生成的随机唯一值,比如可以取Linux提供的uuid:
/proc/sys/kernel/random/uuid
取到后用sadd添加到Redis的
集合(元素唯一)
里.添加成功,表示集合中没有这个uuid,在集合里是唯一的.
然后再把这个uuid用lpush添加到Redis的
列表(元素有序)
里.lpush入队后,当列表的长度大于等于N(自定义数值)时,Redis用lrange取出列表里的元素并
批量写入
到MySQL,写入成功后用ltrim删掉列表中已经处理的元素.优化就体现在:原来的即时写入转变为批量写入.
风险是:Redis意外崩溃有可能丢数据.
比如你的Redis配置了 appendfsync everysec
那就有丢失前1秒数据的风险.
事务号是什么意思?
GTID 的全称是 Global Transaction Identifier,也就是全局事务 ID,是一个事务在提交的时候生成的,是这个事务的唯一标识。它由两部分组成,格式是:
GTID=server_uuid:gno
其中:
server_uuid 是一个实例第一次启动时自动生成的,是一个全局唯一的值;
gno 是一个整数,初始值是 1,每次提交事务的时候分配给这个事务,并加 1。
这里我需要和你说明一下,在 MySQL 的官方文档里,GTID 格式是这么定义的:
GTID=source_id:transaction_id
这里的 source_id 就是 server_uuid;而后面的这个 transaction_id,我觉得容易造成误导,所以我改成了 gno。
前端高级证书需要学什么?
一、高级基础部分
1.ES6/ES7语法和原理实现
2.异步发展过程:callback、promise、generator、co、async/await等异步流程控制(async和await的实现原理)
3.promise设计模式原理及在es6中的应用,手写一个符合promise A+规范的promise实现
4.Node基础与实战
5.Node事件原理和发布定阅设计模式
6.函数式编程
二、模块化的演进
JavaScript模块化发展的演进历史 CommonJS、AMD、CMD、ES6模块的演进历史
目前最主流的模块化实现方案: CommonJS 到 ES Module
手写 CommonJS 的简单实现
三、前端工程化构建工具
1.gulp的基本用法以及实现原理
2.常用插件(压缩、合并、编译、预览服务、自动注入)
3.node.js中自定义流的高级用法
4.实现自定义插件(auto-prefixer)
5.webpack基本用法以及运行原理
6.常见的loader以及plugin(DllPlugin等)
7.Webpack工作原理分析
8.编写自定义Loader、编写自定义Plugin
9.webpack优化(resolve、模块热替换、压缩、代码分割、可视化工具)
四.React全家桶
1.react
1.为什么采用组件化的方式
2.react环境搭建
3.JSX语法的使用(createElement,render的原理实现)
还没有评论,来说两句吧...