阿里redis开发规范、java开发手册 | 青训营笔记

262 阅读2分钟

阿里redis开发规范、java开发手册 | 青训营笔记


学习,阿里的redis和java开发手册,知道了redis的设计模式和原理,从一下几个方面说明:键值设计、命令使用、客户端使用、相关工具。使用java程序来调用redis。

  1. key:不要包含特殊字符
  2. string最好在10kb以内,hashlistsetzset元素个数不要超过5000。
  3. 通过expire设置键值对的生命周期
  4. 批量操作
    • mgetmset(最好500以内)

注意:reids不支持rollback 使用lua达到原子性操作

  1. 该并发下增加熔断功能

  2. 淘汰策略:根据自身业务类型,选好maxmemory-policy(最大内存淘汰策略),设置好过期时间。 默认策略是volatile-lru,即超过最大内存后,在过期键中使用lru算法进行key的剔除,保证不过期数据不被删除,但是可能会出现OOM问题。

    其他策略如下:

    • allkeys-lru:LRU算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为止。
    • allkeys-random:随机删除所有键,直到腾出足够空间为止。
    • volatile-random:随机删除过期键,直到腾出足够空间为止。
    • volatile-ttl:根据键值对象的ttl属性,删除最近将要过期数据。如果没有,回退到noeviction策略。
    • noeviction:不会剔除任何数据,拒绝所有写入操作并返回客户端错误信息"(error) OOM command not allowed when used memory",此时Redis只响应读操作。

数据同步:redis-port 热点搜索:redis-faina

删除big key

hash、list、set。sortedSet

补充

Redis 高级特性

  1. 发布与订阅

Redis 支持发布与订阅模式,即客户端可以订阅一个或多个频道,当有消息发布到指定频道时,所有订阅该频道的客户端都会收到相应的消息。发布与订阅模式可以实现实时通知、消息推送等功能。

  1. Lua 脚本

Redis 支持执行自定义的 Lua 脚本,开发者可以使用 Lua 语言编写各种复杂的业务逻辑,从而提高 Redis 的灵活性和可扩展性。

  1. 事务操作

Redis 支持事务操作,可以在一次请求中执行多个命令,并在所有命令执行完成后提交或回滚事务。事务操作可以保证多个命令之间的数据一致性,避免并发操作时数据不一致的问题。

  1. 慢查询日志

Redis 可以记录执行时间较长的命令,用户可以通过查看慢查询日志来分析系统性能瓶颈,并进行性能优化。