侠客岛的含笑
2018-05-31 10:51:07浏览 2590
大家学实战的时候可以把我的文章翻出来,就不用自己记笔记了。节省大家学习成本。
慢查询
pipeline
发布订阅
bitmap(位图)
- string类型,最大512mb
- 注意setbit偏移量,可能有较大耗时
- 位图要合理使用
set和Bitmap对比
数据类型 |
每个userid占用空间 |
需要存储的用户量 |
全部内存量 |
---|
set |
32位(假设userid用的是整型,实际很多网站用的是长整型) |
50,000,000 |
32位*50,000,000=200MB |
|
|
|
|
Bitmap |
1位 |
100,000,000 |
1位*100,000,000=12.5MB |
|
一天 |
一月 |
一年 |
---|
set |
200M |
6G |
72G |
Bitmap |
12.5M |
375M |
4.5G |
只有10万独立用户呢
数据类型 |
每个userid占用空间 |
需要存储的用户量 |
全部内存量 |
---|
set |
32位(假设userid用的是整型,实际很多网站用的是长整型) |
1,000,000 |
32位*1,000,000=4MB |
|
|
|
|
Bitmap |
1位 |
100,000,000 |
1位*100,000,000=12.5MB |
HyperLoglog
- 1.基于HyperLogLog算法:极小空间完成独立数量统计。
- 2.本质还是字符串。
127.0.0.1:6379>type hyperloglog_key
string
- pfadd key element [element…]:向hyperloglog添加元素
- pfcount key [key…]:计算hyperloglog的独立总数
- pfmerge destkey sourcekey [sourcekey……]:合并多个hyperloglog
GEO
- since 3.2+
- type geokey=zset
- 没有删除API:zrem key member
127.0.0.1:6379> info memory
# Memory
used_memory:815096
used_memory_human:795.99K
used_memory_rss:7626752
used_memory_peak:815096
used_memory_peak_human:795.99K
used_memory_lua:36864
mem_fragmentation_ratio:9.36
mem_allocator:jemalloc-3.6.0
Redis持久化
RDB
SAVE
- 当数据量大时,save会阻塞
- 文件策略 如存在老的RDB文件,新替换老
- 复杂度O(N)
bgsave
自动RDB
最佳配置
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir ./
stop-writes-on-bgsave-error- yes 中断写入
rdbcompression yes 默认启用压缩
rdbchecknum yes 默认启用计算和
自动触发机制
- 全量复制
- debug reload
- shutdown save
- RDB是Redis内存到硬盘的快照,用于持久化。
- save通常会阻塞Redis。
- bgsave不会阻塞Redis,但是会fork新进程。
- save自动配置满足任一就会被执行。
- 有些触发机制不容忽视
AOF
rdB缺点
AOF three tactics
always
everysec(默认值,故障,有可能丢失)
no
命令 |
always |
everysec |
no |
---|
优点 |
不丢失数据 |
每秒一次fsync丢1秒数据 |
不用管 |
缺点 |
IO开销较大,一般的sata盘只有几百TPS |
丢1秒数据 |
不可控 |
AOF rewrite two ways
AOF重写流程
AOF配置
no-appendfsync-on-rewrite
重写时关闭正常的AOF append (性能和丢失率的选择)
aof-load-truncated yes 当aof有问题时,我们是否忽略错误
appendonly yes
appendfilename "appendonly-${port).aof"
appendfsync everysec
dir /bigdiskpath
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
RDB vs AOF
命令 |
RDB |
AOF |
---|
启动优先级 |
低 |
高 |
体积 |
小 |
大 |
恢复速度 |
快 |
慢 |
数据安全性 |
丢数据 |
根据策略决定 |
轻重 |
重 |
轻 |
最佳实践
- RDB
- AOF
- 开:缓存和存储
- AOF重写集中管理 分配服务器百分之五十到六十的内存
- everysync
- 总
- 小切片 设置最大内存4个G
- 存储和缓存
- 监控(硬盘,内存,负载,网络)
- 内存足够
热门评论
感谢
图片怎么挂了~~~~~~~~~