redis的info是针对单机的吗 redis每秒只有100次存取怎么办?

[更新]
·
·
分类:互联网
4719 阅读

redis的info是针对单机的吗

redis每秒只有100次存取怎么办?

redis每秒只有100次存取怎么办?

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,可以定位到具体的慢操作,针对性的做优化;
如果打开了持久化功能,rdb和aof都有可能导致性能问题,可以通过info persistence查看持久过相关的统计数据是否有异常,比如fork是否会过慢,aof_delayed_fsync是否过大等。
以上只是个人建议,有不对的地方烦请补充和指正,谢谢!

java微服务日志处理的最合适方案是什么?

情况及需求描述:
spring boot开发的微服务有多个,每个微服务在4台云服务器上部署4个节点
2.有1个网关,部署在一台服务器上,所有请求都通过网关进行转发和负载均衡
3.需要对网关发起的每一请求都记录日志,例如请求的时间、ip、参数、耗时、返回结果等
4.网关的访问日志需要保证安全持久化,即不能丢失,以便后期对账
5.希望网关的访问日志的保存,能够具有一定的实时性,以便后台能够即时看到访问的变化、做数据分析等
6.每个微服务、节点上的错误日志能够远程访问查看,而不是登录每一台与服务器去查日志文件
7.一共有4台云服务器,2台阿里、2台华为,每台双核16g,数据库只有一个阿里的rds和redis
尝试方案1:
在网关配置logback,将访问日志输出到logstash,再由logstash输出到elastic,最后kibana展示,即ELK方案
问题:1.logstash的过滤器grok配置有点难,默认如果(RequestModel)这样打日志,RequestModel中的信息会在logstash中单独以一个message字段进行保存,这对后面kibana写过滤表达式很难处理。后来采取java代码中({} {} {}