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秒数据的风险.
如果觉得《mysql查询字段大于 mysql中UUID产生的数据 – 数据库 – 前端 c mysql根据日期查询》对你有帮助,请点赞、收藏,并留下你的观点哦!