keakon 最近的时间轴更新
keakon

keakon

V2EX 第 2704 号会员,加入于 2010-11-01 02:41:26 +08:00
今日活跃度排名 14855
[珠海 or 远程]有靠谱的公司招 Python 开发吗? 8 年工作经验
求职  •  keakon  •  2017-07-05 11:19:12 AM  •  最后回复来自 Irenelee
12
怎么屏蔽 H5?
问与答  •  keakon  •  2015-07-14 15:41:38 PM  •  最后回复来自 CodeingBoy
8
空格跳转到回复框很反吃货啊
V2EX  •  keakon  •  2013-09-02 20:59:33 PM  •  最后回复来自 chairuosen
3
ORCA 的设置中,Upstream IP 可以写域名么?
ORCA  •  keakon  •  2013-03-17 14:40:45 PM  •  最后回复来自 Livid
1
求问美国有什么好的Windows服务器/VPS?
服务器  •  keakon  •  2013-01-28 22:32:09 PM  •  最后回复来自 keakon
18
明天要订火车票了,有啥抢票的工具?
问与答  •  keakon  •  2013-01-14 23:14:48 PM  •  最后回复来自 greatghoul
15
Tornado + Supervisor + nginx 怎样优雅地重启?
Tornado  •  keakon  •  2012-12-14 16:34:30 PM  •  最后回复来自 zuroc
8
求推荐一个Python的task queue / cron job系统
Python  •  keakon  •  2012-11-21 13:53:42 PM  •  最后回复来自 reorx
15
美国亚马逊 Kingston 120GB SSD 只卖 60 刀
SSD  •  keakon  •  2012-10-12 18:10:27 PM  •  最后回复来自 billzhuang
4
keakon 最近回复了
也可能是硬盘慢。。
228 天前
回复了 PepperEgg 创建的主题 Linux 一个奇怪的关于 UDP 包的问题
原因是这个 https://github.com/shadowsocks/shadowsocks-libev/issues/361#issuecomment-130538207

Python 2 可以这样设置:
```
import socket
import IN
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('65.55.42.21', 3074))
s.setsockopt(socket.IPPROTO_IP, IN.IP_MTU_DISCOVER, IN.IP_PMTUDISC_DONT)
s.send('010000003b0017000000000058626f78204f6e65204563686f205465737400'.decode('hex'))
s.recvfrom(65565)
```
dns 解析的时间不算在 timeout 里,你只有一个域名的话,写在 hosts 里让它不解析不就行了?
234 天前
回复了 Virace 创建的主题 Python 关于读写文件执行速度
如果解析的文件是 json 的话,市面上所有的 json 库都会内存泄露
@waibunleung 你最好先熟悉 redis 的内存占用再来臆测。一楼的方案内存占用要多 1~2 个数量级。
总视频数、每 10 分钟总的访问量说下量级吧,应用场景是怎样的,感觉你想得太多了。

比如「我想做一个管理后台…」,你管理后台每秒能刷几千次啊,还能被刷爆?

而如果是面向公众用户的场景,你的需求也不需要「实时、精确地计算出访问增量」,每分钟统计一下就行了。

最后,这种情况比较常见的做法是使用时间轮,比如选一个比 10 大又能被 60 整除的数,例如 12 。将当前的分钟数对 12 取模,然后每个 key 记录这一分钟的数据。每到一个新的一分钟,就把 11 分钟前的 key 删了。要获取数据时,就取当前和之前的 10 个 key 。
至于数据结构选啥,根据你的视频量级、视频数是否恒定、id 是否连续等而定,不同的方案内存差别很大。比如一楼提到的 view_count_{vid}_{minute},这种实现不用看也知道内存扛不住。
281 天前
回复了 firethehole 创建的主题 Redis scan 0 COUNT 1 为啥会查询出两条数据呢?
原因是这个
https://redis.io/commands/scan#why-scan-may-return-all-the-items-of-an-aggregate-data-type-in-a-single-call

只有当底层实现是 hash table 的时候,cursor 才有意义。出于内存优化的考虑,较小的数据结构(比如只有 2 个 key ),redis 会用 compact single-allocation packed encoding 。这种编码下强行使用 cursor 会导致时间复杂度变成 O(n),所以会直接返回所有数据。
301 天前
回复了 Te11UA 创建的主题 Redis 大量 sunionstore 怎么提高性能?
不知道你的业务场景是怎样的,我弄了 1 万个 set,每个 set 1000 个整数,sunionstore 1 万次不同的 set 也就 200 多 ms 。但是因为修改比较多,会触发 bgsave,可以关闭掉在 slave 去做。

如果这也是瓶颈的话,在应用层读出来合并再写回去会慢一个数量级。
不过如果不需要保存 sunionstore 的结果,这样虽然慢,但是可以节省 redis 的 CPU 。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   999 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 73ms · UTC 23:00 · PVG 07:00 · LAX 15:00 · JFK 18:00
♥ Do have faith in what you're doing.