![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
hjxisking
这个作者很懒,什么都没留下…
展开
-
用自增ID生成另一个长串数字的方法
实际应用场景中经常会遇到用什么方式来生成userId,常用的方式是直接使用Mysql的自增主键作为userId,优点是简单方便,插入时无须考虑userId重复的问题,缺点是位数不一致,如果userId还需要暴露给用户或者第三方,容易让他人估计出用户总数量,同时伪造userId也变得更方便。所以需要一个更好的方式来产生userId来代替自增主键。以下算法可以通过一个数字产生另一个位数相对固定的数字,同时还是可逆的。$seeds = [ '7893401256'...原创 2022-02-09 11:43:35 · 751 阅读 · 0 评论 -
redis存储时内存空间大小问题
举个例子:现在要存储500w个key/value对,(dba1,dba1)(dba2,dba2)…500w个key: 使用字符串类型(500W个key):431.73M 使用hash(5000个hash,每个长度1000):436.23M 使用hash(10000个hash,每个长度500):95.16M为什么同样要存500w个内容,内存使用却大不相同?首先,hash存储使用的redis底层数据结构为ziplist或者hashMapziplist是内存连续分配的,没有碎片,消耗.原创 2020-10-13 14:34:21 · 2604 阅读 · 0 评论 -
redis的hyperloglog和bloom filter
Redis HyperLogLog 是用来做基数统计的算法什么是基数?比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。有什么用?比如统计UV,快速统计出千万级别的UVPFADD uv 1001PFADD uv 1002PFADD...原创 2020-03-31 20:15:53 · 262 阅读 · 0 评论