用 Redis 去重,数据量大概 90w/月,不断累积,服务器需要多少内存

2018-11-12 11:49:52 +08:00
 CharlieBrown

现在有一台 4G 运行内存的 centos 服务器,

想将文章标题 md5 后存到 Redis 进行去重,

数据量大概是 90w/月,并且不断累积。

想问:

( 1 )服务器大概需要多少内存(以一年数据大概 1000w 计算)

( 2 ) Redis 除了改重要指令名字,加长密码,限制 ip 外,安全方面还有什么要注意的吗

( 3 )要是服务器重启,数据会丢失吗,持久化是 Redis 自动的还是得设置

11913 次点击
所在节点    Redis
40 条回复
kingwrcy
2018-11-12 11:52:54 +08:00
可以使用 bloom 过滤器,但是会有误差
leriou
2018-11-12 11:55:50 +08:00
90 万, 容量没问题, 还得考虑访问频次, 2, 重要指令没必要改, redis 部署为内网访问就行了,最好可以选择集群方案 3, 默认有持久化, 最好还是 自己配置一下 rdb+ aof 频次自己多尝试一下, 弄好持久化, 重启不会丢太多数据, 会丢 1-2s 的数据
luozic
2018-11-12 12:03:18 +08:00
听说过 bloom filter 没有?你这内存大大有余量。
dingyaguang117
2018-11-12 12:07:21 +08:00
bloom filter +1
很多年前造的轮子 https://github.com/dingyaguang117/BloomFilter
colincat
2018-11-12 12:07:33 +08:00
楼上说的没毛病,11 亿够用不,512m 内存就够啦
huashengshu
2018-11-12 12:24:53 +08:00
1000w 的短 key 也就 1-2G 吧,key 越多,内存膨胀越厉害,可以考虑分桶+hashmap
如果不需要精确值,可以考虑 HyperLogLog、bitmap,redis 也支持这两种数据结构
SummerWQM
2018-11-12 12:28:10 +08:00
还等什么 上 spark hadoop
cdwyd
2018-11-12 12:30:04 +08:00
才 90 万每月,现在的配置够用几年了
huashengshu
2018-11-12 12:30:53 +08:00
@SummerWQM 讲道理,spark/hadoop 是需要巨大成本的,1000w 一年的量,一个列式数据库就搞定了
reus
2018-11-12 12:30:58 +08:00
一个数据库唯一键就能解决的事情
CharlieBrown
2018-11-12 13:34:45 +08:00
@leriou 好的,谢谢指点
CharlieBrown
2018-11-12 13:35:35 +08:00
@luozic
@dingyaguang117
@colincat
bloom filter 听说过,不过不是上亿数据量以上才会使用吗
CharlieBrown
2018-11-12 13:36:06 +08:00
@SummerWQM 学习成本太大,我就做个爬虫去重而已。。
zhengxiaowai
2018-11-12 13:39:04 +08:00
@CharlieBrown bloom filter 没有学习成本,两个命令而已,还有计算计算公式能评估错误率和所需要的容量,很好用。
watzds
2018-11-12 13:47:05 +08:00
90w 应该 90MB 不到,写入 redis 看一下内存占用
jatesun
2018-11-12 14:02:19 +08:00
90w 跟没有数据有啥区别(如果一条数据没有图片超大文本之类的)
ClutchBear
2018-11-12 14:03:36 +08:00
bloom filter,
redis 4.0 以上版本, 开启插件就行.

./src/redis-server redis.conf --loadmodule /usr/rebloom/rebloom.so INITIAL_SIZE 1000000 ERROR_RATE 0.0001
# 容量 100 万, 容错率万分之一, 占用空间是 4m

需要的时候自动创建一个容量 100 万, 容错率万分之一的 bf key
语法就是
bf.add(key, value)
ClutchBear
2018-11-12 14:05:03 +08:00
这个语法是手动创建一个新 key
BF.RESERVE 2018_ccgp 0.0001 28000000
容量是两千八百万, 占用空间是 64m
feverzsj
2018-11-12 14:09:35 +08:00
你先确定你是否要用 redis,为什么不用 mysql
CharlieBrown
2018-11-12 14:20:38 +08:00
@zhengxiaowai 我说的是 spark hadoop 的学习成本。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/506931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX