《Seven NoSQL Databases in a week》关于Redis 的笔记。
1. 数据量大于内存
数据不能全部放入内存,性能会有很大影响。
2. 使用关系型数据
这需要多次操作并且在应用端JOIN。而且Redis不支持关系数据库的ACID。
3. 连接管理。
打开的连接必须要关闭。如果使用连接池,也需要确保连接正常关闭。
4. 安全
Redis应该运行在一个安全的内部网络中。Redis不负责安全。
5. 使用命令 KEYS
KEYS命令相当于数据库 SELECT ..FROM 而没有WHERE语句。当Redis有大量数据时,会明显降低Redis的性能。
6. 不必要的网络往返
可以使用这几种方法,
- 重用Redis连接,而不要每次都创建新的连接。
- 在一次提交的事务中执行多条命令。
- 使用聚合命令操作多个Key
7. 忘记关闭THP
THP = Transparent Huge Pages
sudo echo never > /sys/kernel/mm/transparent_hugepage/enabled
THP会在后台fork一个进程在持久化数据到磁盘,会带来一定的延迟。