redis只有100的ops确实是有问题的,这违背了redis高性能的定义。可以从以下几个方面排查下:
1.部署redis的服务器资源是否充足,包括CPU、内存等,redis的数据是保存再内存中的,充足的内存是必要条件,redis是单线程架构,所以很容易把单核cpu跑满;
2.客户端和redis服务器端的网络带宽是否充足,redis的高性能指的是他自身的处理速度极快,但是如果网络延迟比较大,也会导致ops较低;
3.是否有bigkey,大的键值对会占用比较大的内存,在操作时也会耗费更多的计算资源和网络资源,这可以使用redis-cli –bigkeys命令查询出来,如果存在需要根据业务条件做键值的拆分;
4.是否采用了错误的value类型,redis一般包括string(字符串)、list(链表)、set(集合)、zset(sorted set有序集合)和hash(哈希类型),需要结合实际业务选择value类型;
5.是否多度使用了高算法复杂度的命令,比如hgetall、smembers、keys等,可以替换成hmget、sscan、scan等;
6.查询redis的慢查询日志,命令是slowlog get,可以定位到具体的慢操作,针对性的做优化;
7.redis如果打开了持久化功能,rdb和aof都有可能导致性能问题,可以通过info persistence查看持久过相关的统计数据是否有异常,比如fork是否会过慢,aof_delayed_fsync是否过大等。
以上只是个人建议,有不对的地方烦请补充和指正,谢谢!