其他
Redis 使用 10 个小技巧,请收下!
Java技术栈
www.javastack.cn
优秀的Java技术公众号
Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。
随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。
下面我们将探索正确使用 Redis 的10个技巧。
Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。
很多时候当我们关注一个redis实例的统计数据,我们会快速地输入”KEYS *”命令,这样key的信息会很明显地展示出来。平心而论,从程序化的角度出发往往倾向于写出下面这样的伪代码:
for key in 'keys *':
doAllTheThings()
2、找出拖慢 Redis 的罪魁祸首
127.0.0.1:6379> INFO commandstats
# Commandstats
cmdstat_get:calls=78,usec=608,usec_per_call=7.79
cmdstat_setex:calls=5,usec=71,usec_per_call=14.20
cmdstat_keys:calls=2,usec=42,usec_per_call=21.00
cmdstat_info:calls=10,usec=1931,usec_per_call=193.10
3、 将 Redis-Benchmark 结果作为参考,而不要一概而论
可能受到哪些客户端运行环境的限制? 是同一个版本号吗? 测试环境中的表现与应用将要运行的环境是否一致?
4、Hashes 是你的最佳选择
foo:first_name
foo:last_name
foo:address
上面的例子中,foo 可能是一个用户的用户名,其中的每一项都是一个单独的 key。这就增加了 犯错的空间,和一些不必要的 key。使用 hash 代替吧,你会惊奇地发现竟然只需要一个 key :
127.0.0.1:6379> HSET foo first_name "Joe"
(integer) 1
127.0.0.1:6379> HSET foo last_name "Engel"
(integer) 1
127.0.0.1:6379> HSET foo address "1 Fanatical Pl"
(integer) 1
127.0.0.1:6379> HGETALL foo
1) "first_name"
2) "Joe"
3) "last_name"
4) "Engel"
5) "address"
6) "1 Fanatical Pl"
127.0.0.1:6379> HGET foo first_name
"Joe"
5、设置 key 值的存活时间
6、 选择合适的回收策略
7、如果你的数据很重要,请使用 Try/Except
8、不要耗尽一个实例
9、内核越多越好吗?!
10、高可用
原文:http://objectrocket.com/blog/how-to/10-quick-tips-about-redis/
译文:https://www.jb51.net/article/73376.htm
END
学习资料:
最近热文:
短视频:
点击「阅读原文」带你飞~