项目当中 签到功能 +多级缓存+介绍一下点赞功能

签到是怎么做的?

刚开始想用数据库做来着,后来发现用数据库数据量太大,就找解决方案,想到了用bitMap 位图。

bitMap 位图是什么  ?

我们采用的是radis 里的bitMap结构  他本质是字符串  最大512mb

是使用01 来存储的一种方式

为什么?

节省空间  我们采用的是 一个人一个月 的签到记录放进一个单独的key里面

最多也就31bit  签到这个业务 只有签到和未签到 两张状态  所有才用 bitmap

什么是多级缓存?

多级缓存就是  本地缓存+radis缓存形成的多级缓存

流程是 : 先访问本地缓存 没有就访问radis缓存 在没有 就访问 数据库

好处点是什么?

相对应radis来说 响应速度更快  并且没有网络带宽消耗 

缺点是什么 ?

由于是本地缓存  所以在分布式环境下  很难同步 

项目中有没有用到  ??

有啊  

是分类数据 

为什么是分类数据 ?

因为分类数据 不经常变化 数据量不能太大 一般百万级别

你们是用什么框架 做的?

咖啡因  性能遥遥领先 经过Spring洗礼 容错性也好

介绍一下点赞功能?

点赞是一个独立 通用模块   原因是我们这个系统 有好几个地方都用到 点赞  所以 我呢就想着 把他设计独立一些   其次 点赞是一个高频接口  所有要保证这个接口能够应对高并发  还有数据安全能得到保证  

 所有用到了radis相关存储数据  

set 用来存储点赞记录 

zet用来存储点赞次数 

为什么要用到这两个结构?

set存储点赞记录  是利用 set天然去重性  所有value 是用户id

使用zset 原因 是 我们采用了合并写思路  原因是 点赞功能是一个比较简单操作数据库过程 

所有就先把这个数据存储在radis 中  在通过定时任务去修改  数据库

最后由于点赞  数量的这个值是存在各个微服务里 ,又由于我的点赞 是一个独立的微服务 ,所以我采用mq来做异步通知 的方式来降低两个模块之间的耦合

相关推荐

  1. 项目当中 签到功能 +多级缓存+介绍一下功能

    2024-03-20 09:12:08       44 阅读
  2. 使用django构建一个多级评论功能

    2024-03-20 09:12:08       45 阅读
  3. Mybatis 的缓存功能

    2024-03-20 09:12:08       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 09:12:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 09:12:08       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 09:12:08       82 阅读
  4. Python语言-面向对象

    2024-03-20 09:12:08       91 阅读

热门阅读

  1. python Jira库如何修改一个issue的status

    2024-03-20 09:12:08       41 阅读
  2. 爬虫基本原理介绍、实现以及问题解决

    2024-03-20 09:12:08       40 阅读
  3. 【Docker】Jaeger 容器化部署

    2024-03-20 09:12:08       42 阅读
  4. 单例模式:双重效验锁的懒汉实现方式

    2024-03-20 09:12:08       40 阅读
  5. opencv | 编译opencv卡在ADE: Download: v0.1.1f.zip

    2024-03-20 09:12:08       42 阅读
  6. PHP与Spring Boot在实现功能上的比较

    2024-03-20 09:12:08       45 阅读
  7. 关于sftp限制登录默认目录若干问题

    2024-03-20 09:12:08       32 阅读
  8. Go语言学习12-反射和Unsafe

    2024-03-20 09:12:08       46 阅读
  9. go 解决货币计算的难题:避免浮点数陷阱

    2024-03-20 09:12:08       31 阅读
  10. Rust 的 PhantomData

    2024-03-20 09:12:08       42 阅读
  11. ES进程除了kill之外,有什么优雅关闭的方式吗?

    2024-03-20 09:12:08       42 阅读
  12. R语言Scale函数与normalize.quantiles()函数的异同

    2024-03-20 09:12:08       45 阅读
  13. Linux Shell 管道基本介绍

    2024-03-20 09:12:08       44 阅读