09 2022 档案
摘要:BlockingQueue 阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的
阅读全文
摘要:一、使用Redis存储验证码 验证码需要频繁的访问与刷新,对性能要求较高。 验证码不需永久保存,通常在很短的时间后就会失效。 分布式部署时,存在Session共享的问题。 RedisKeyUtil.java // 验证码前缀 private static final String PREFIX_KA
阅读全文
摘要:业务层 查询某个用户关注的人,支持分页。 查询某个用户的粉丝,支持分页。 表现层 处理“查询关注的人”、“查询粉丝”请求。 编写“查询关注的人”、“查询粉丝”模板。 一、业务层 FollowService.java // 查询某用户关注的人 public List<Map<String, Objec
阅读全文
摘要:需求 开发关注、取消关注功能。 统计用户的关注数、粉丝数。 关键 若A关注了B,则A是B的Follower(粉丝),B是A的Followee(目标)。 关注的目标可以是用户、帖子、题目等,在实现时将这些目标抽象为实体。 一、增加相应的key 关注的除了用户,也可能是帖子等,生成Follower和Fo
阅读全文
摘要:重构点赞功能 以用户为key,记录点赞数量 increment(key), decrement(key) 开发个人主页 以用户为key,查询点赞数量 一、补充RedisKeyUtil 生成用户id的key,存放给该用户点过赞的用户id public class RedisKeyUtil { // .
阅读全文
摘要:点赞 支持对帖子、评论点赞。 第1次点赞,第2次取消点赞。 首页点赞数量 统计帖子的点赞数量。 详情页点赞数量 统计点赞数量。 显示点赞状态。 一、新建生成redis key的工具类 redis一般以冒号分割key。 存点赞userid的集合,这样即可以得到赞的数量,也可以知道是谁点了赞。 Redi
阅读全文
摘要:一、Redis简介 Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构: 字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。 Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。 同时,Redis
阅读全文
摘要:一、AOP的概念 Aspect Oriented Programing,即面向方面(切面)编程。 AOP是一种编程思想,是对OOP的补充,可以进一步提高编程的效率。 二、AOP的术语 Joinpoint(连接点):所谓连接点是指那些被拦截到的点,在 spring 中,这些点指的是方法,因为 spri
阅读全文