• 「黑马 Redis」二、最佳实践

    多级缓存跳过 键值设计 优雅的 key 结构 Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id] 长度不超过44字节 不包含特殊字符 例如:我们的登录业务,保存用户信息,其key是这样的: login:user:10 优点: 可读性强 避免key冲突 方便管理 更节省内存:key是string类型,底层编码包含int、embstr和raw三种。embstr在小于44字节使用,采用连续内存空间,内存占用更小 set num 123 如果 type num 得到...

    2025 年 5 月 9 日 星期五(已编辑)
    1
    阅读全文
  • 「黑马 Redis」一、分布式缓存

    引入 单点 Redis 问题: 数据丢失问题 实现 Redis 数据持久化 并发能力问题 搭建主从集群,实现读写分离 存储能力问题 学习 es,搭建分片集群,利用插槽机制实现动态扩容 故障恢复问题 Redis 哨兵,实现健康监测以及自动恢复 Redis 数据持久化 - 数据丢失问题 RDB 持久化 RDB:Redis Database Backup file,也称 Redis 数据快照,将内存中所有数据记录到磁盘,一旦 Redis 故障重启,就从磁盘中读取快照文件,恢复数据 快照文件称为 RDB 文件,默认保存在当前运行目录...

    2025 年 4 月 30 日 星期三(已编辑)
    2
    阅读全文
  • 「黑马点评」十二、UV 统计

    HyperLogLog 用法 UV:Unique Visitor,独立访客量,一天内同一用户多次访问也只记 1 次 PV:Page View,页面点击量,一个用户每访问一次页面就记 1 次 PV UV 统计需要判断该用户是否已经统计过,需要保存统计过的用户信息,如果存到 Redis,数据量非常大 HyperLogLog 是从 LogLog 算法派生出的概率算法,用于确定非常大的集合的基数,而不需要存储其所有的值,小于 0.81% 的误差 ![image.png|500](https://0xling.cyou/api/v2/objects/file/174586370113192...

    2025 年 4 月 28 日 星期一(已编辑)
    3
    阅读全文
  • 「黑马点评」十一、用户签到

    BitMap 用法 如果使用数据库记录用户签到信息,每条签到记录一次,数据量将会极其庞大,占用损耗都无法接受,所以可以利用二进制压缩,签到记录为 1,未签到记录为 0 image.png|500 位图 BitMap,利用 0 和 1 标示业务状态,位映射到具体含义,这里的场景就是某一位对应了现实某一天 ![image.png|500](https://0xling.cyou/api/v2/objects/file/1745861672954481...

    2025 年 4 月 28 日 星期一
    1
    阅读全文
  • 「黑马点评」十、附近商户

    GEO 数据结构 Geolocation 代表地理坐标,以下为常见坐标 image.png|500 练习 Redis GEO 添加以下信息 北京南站 116.378248 39.865275 北京站 116.42803 39.903738 北京西站 116.322287 39.893729 计算北京西站到北京站的距离 搜索天安门 116.397904 39.909005 附近 10km 内的所有火车站,并按照距...

    2025 年 4 月 28 日 星期一
    1
    阅读全文
  • 「黑马点评」九、好友关注

    关注和取关 关注、取关用户:PUT /api/follow/{userId}/{true/false} 判断是否关注:GET /api/follow/or/not/{userId} 数据库建关联表 image.png|500 非常基础的实现 @Service public class FollowServiceImpl implements IFollowService { @Resource pri...

    2025 年 4 月 28 日 星期一(已编辑)
    1
    阅读全文
  • 「黑马点评」八、达人探店

    探店笔记 数据库建表: tb_blog 探店笔记表,包含标题、文字、图片等 tb_blog_comments 对某篇探店笔记的评价 建表 sql image.png|500 上传图片接口:POST /api/upload/blog @PostMapping("blog") public Result uploadImage(@RequestParam("file") MultipartFile image) { t...

    2025 年 4 月 27 日 星期日
    2
    阅读全文
  • 「黑马点评」七、Redis 消息队列优化异步秒杀下单

    异步秒杀下单优化之 Redis Stream 消息队列 需求: 创建一个 Stream 类型的消息队列,名为 stream.orders 修改之前的秒杀下单 Lua 脚本,在认定有抢购资格后,直接向 stream.orders 中添加消息,内容包含 voucherId、userId、orderId 项目启动时,开启一个线程任务,尝试获取 stream.orders 中的消息,完成下单 创建消息队列 消息队列名为 stream.orders,消费者组名为 g1,无则创建 xgroup create stream.orders g1 0 MKSTR...

    2025 年 4 月 25 日 星期五(已编辑)
    4
    阅读全文
  • 「黑马点评」七、Redis 消息队列介绍

    消息队列入门 消息队列:确保消息至少被消费一次,也意味着持久化 image.png|500 主流的消息队列:Kafka、RabbitMQ、rocketMQ Redis 提供的消息队列 List:基于 List 结构模拟消息队列 PubSub:基本的点对点消息模型 Stream:比较完善的消息队列模型 基于 List 结构模拟消息队列 Redis 的 List 结构是双向链表,利用 LPUSH、RPOP 或 RPUSH、LPO...

    2025 年 4 月 25 日 星期五(已编辑)
    8
    阅读全文
  • 「黑马点评」六、秒杀优化

    异步秒杀优化 正常的执行需要执行六步,且涉及数据库,非常耗时,如果将判断库存和校验一人一单抽离出来,并将相关订单放到一个阻塞队列中,异步处理下单操作,可以优化更快的订单返回,以及下单速度 image.png|500 也就是说当前只需要确认能否执行,真正的执行可以慢慢做 将耗时的判断库存和校验一人一单的流程放入 Redis 中操作,并利用 Lua 脚本确保原子性 库存判断可以使用 String,一人一单直接使用 Set 即可 ![image.p...

    2025 年 4 月 23 日 星期三
    24
    阅读全文
关于关于本站关于我关于此项目
更多时间线友链监控
联系写留言发邮件GitHub
© 2024-2025 Chanler. | RSS | 站点地图 | | Stay hungry. Stay foolish.
Powered by Mix Space&. | 萌 ICP 备 号 |