怎么学好Java编程开发?如何了解Redis使用规范?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。根据不同的用途,Redis会有不同的持久化策略和逐出策略,下面小编就从使用场景方面给大家讲解一下Redis的使用规范。

java 使用redisson布隆 java怎么用redis_持久化

 

  1、冷热数据区分

  虽然Redis支持持久化,但将所有数据存储在Redis 中,成本非常昂贵。建议将热数据加载到Redis中。低频数据可存储在Mysql、ElasticSearch中。

  2、业务数据分离

  不要将不相关的数据业务都放到一个Redis中。一方面避免业务相互影响,另一方面避免单实例膨胀,并能在故障时降低影响面,快速恢复。

  3、消息大小限制

  由于Redis是单线程服务,消息过大会阻塞并拖慢其他操作。保持消息内容在1KB以下是个好的习惯。严禁超过50KB的单条记录。消息过大还会引起网络带宽的高占用,持久化到磁盘时的IO问题。

  4、连接数限制

  连接的频繁创建和销毁,会浪费大量的系统资源,极限情况会造成宿主机当机。请确保使用了正确的Redis客户端连接池配置。

  5、缓存Key设置失效时间

  作为缓存使用的Key,必须要设置失效时间。失效时间并不是越长越好,请根据业务性质进行设置。注意,失效时间的单位有的是秒,有的是毫秒,这个很多同学不注意容易搞错。

  6、缓存不能有中间态

  缓存应该仅作缓存用,去掉后业务逻辑不应发生改变,万不可切入到业务里。

  缓存的高可用会影响业务,产生深耦合会发生无法预料的效果;会对维护行产生肤效果。

  7、扩展方式首选客户端hash

  如果应用太小就别考虑了,如单Redis集群并不能为你的数据服务,不要着急扩大你的Redis集群(包括M/S和Cluster),集群越大,在状态同步和持久化方面的性能越差。优先使用客户端hash进行集群拆分,如根据用户id分10个集群,用户尾号为0的落在第一个集群。