总结与建议

总结

1.Redis使用最佳方式是全部数据in-memory。

2.Redis更多场景是作为Memcached的替代者来使用。

3.当需要除key/value之外的更多数据类型支持时,使用Redis更合适。

4.当存储的数据不能被剔除时,使用Redis更合适。

建议

1.批量处理:

redis在处理数据时,最好是要进行批量处理,将一次处理1条数据改为多条,性能可以成倍提高。测试的目的就是要弄清楚批量和 非批量处理之间的差别,性能差异非常大,所以在开发过程中尽量使用批量处理,即每次发送多条数据,以抵消网络速度影响。

2.网络:

redis在处理时受网络影响非常大, 所以, 部署最好能在本机部署, 如果本机部署redis, 能获取10到20倍的性能。集群情况下, 网 络硬件、网速要求一定要高。

3.内存:

如果没有足够内存, linux可能将reids一部分数据放到交换分区, 导致读取速度非常慢导致超时。所以一定要预留足够多的内存供 redis使用。

4.少用get/set, 多用hashset

作为一个key value存在,很多开发者自然的使用set/get方式来使用Redis,实际上这并不是最优化的使用方法。尤其在未启用VM 情况下,Redis全部数据需要放入内存,节约内存尤其重要。

假如一个key-value单元需要最小占用512字节,即使只存一个字节也占了512字节。这时候就有一个设计模式, 可以把key复用, 几个key-value放入一个key中,value再作为一个set存入,这样同样512字节就会存放10-100倍的容量。

这就是为了节约内存,建议使用hashset而不是set/get的方式来使用Redis

命令速查

http://doc.redisfans.com

http://redis.cn

相关文档

《The Little Redis Book中文版》

https://github.com/JasonLai256/the-little-redis-book

《redis官方文档翻译》

http://www.iteye.com/blogs/subjects/redis3

《为什么使用 Redis及其产品定位》

http://www.infoq.com/cn/articles/tq-why-choose-redis/