如何避免key冲突?
- select db
- 默认db16个,编号0~15,可通过配置修改db个数
- 默认使用db-0
- key命名格式
- 以"xxx:yyy:zzz"格式命名
安全考虑
- 访问限制
- 只对内网访问,以防外部通过6379端口访问
- 危险函数
- 禁用危险函数:flush、flushall
- 使用秘钥
- $redis->auth(password)
性能提升
- 连接
- 使用官方扩展,弃用predis
- 使用单例方式连接,使用pconnect
- 用中间件,实现连接池
- 持久化策略
- 根据实际情况,关闭持久化
- 服务部署
- 与web服务共存,本地调用
- 与存储服务隔离(mysql),避免高io
- 一主多从,提升性能,或使用集群
- 版本升级
- 低版本:setnx + expire
- 高版本:set(k, v, array(ex, nx))
- 批量操作
- 使用管道命令,批量导入数据
- 使用mset, mget
- 合理操作
- 使用hset存放json,而不是set
- 使用scan代替keys
- Nginx + Lua + Redis
问题:
如何检查redis服务是否健康?