redis实战系列
zisuu
这个作者很懒,什么都没留下…
展开
-
redis实战系列7--springboot整合Redis sentinel集群
一整合步骤Pom.xml:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</ar...原创 2020-04-14 10:06:39 · 383 阅读 · 0 评论 -
redis实战系列6--redis主从复制原理及复制优化
1复制原理主服务器从服务器------------尝试连接开始发送sync请求开始执行bgsave,并开辟一块缓存区来存储bgsave之后的写命令仍可接收客户端命令,但根据配置决定是返回现有数据还是返回errorbgsave完成,开始向从服务器发送快照,仍然用缓存区记录写命令抛弃旧的数据,开始载入主服务器发送的快照开始向从服务器分发这段时间存储在缓存区...原创 2020-04-14 09:35:58 · 124 阅读 · 0 评论 -
redis实战系列5--redis持久化
asdf原创 2020-04-13 21:27:05 · 106 阅读 · 0 评论 -
redis实战系列4--使用redis+springboot构建社交app后台(4)
说明:这是本系列的最终章,主要讲解如何更新用户的时间线,包括:1动态发布时更新发布者以及关注者的时间列表2动态删除时更新发布者以及关注者的时间列表3辅助函数:syndicateStatus(用于更新关注者的时间列表)4获取单人时间线里的具体内容代码:1辅助函数syndicateStatus//如果type=0,表示从关注者里增加发布者发布动态的信息//为1,就是删除public...原创 2020-04-09 18:25:34 · 169 阅读 · 0 评论 -
redis实战系列4--使用redis+springboot构建社交app后台(3)
说明:这一章主要讲解如何关注用户以及取关难点:redisTemplate的reverseRangeWithScores操作以及java的guava包的future模式,不懂可以百度一下,很简单1关注用户//关注用户服务: public boolean followUser( long uid, long otherUid) { ZSetOperations<S...原创 2020-04-09 18:07:05 · 202 阅读 · 0 评论 -
redis实战系列4--使用redis+springboot构建社交app后台(2)
说明:这一篇来讲解如何构建用户及发布动态,至于表中要存储什么信息可以自己定义1构建用户主要思路:要用到前面说的分布式锁,以防止同一时间反复的创建,代码:public long createUser(String token,String name) throws InterruptedException { token=token.toLowerCase(); HashOp...原创 2020-04-09 17:36:49 · 115 阅读 · 0 评论 -
redis实战系列4--使用redis+springboot构建社交app后台(1)
说明:这一套开发是基于springboot的redisTemplate开发的,主要用到了redis的zset,hash本文主要讲解redis的表格,具体的开发流程在后序文章中下面是redis表:1 home:id–(个人的主页时间线—(包括关注者发布的动态以及自己发布的动态)),其中Id代表用户的id存储结构:zset,如下statusId–timestampstatusId指动态的...原创 2020-04-09 17:14:01 · 232 阅读 · 0 评论 -
redis实战3--信号枪的实现以及多版本信号量
什么是信号枪?信号枪(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,能保证一个共同资源在某一段时间内只有有限数的线程能够进行访问的机制如何实现?基本思路:1用zset有序集合来存储信息,键为随机生成的Id,值为当前的时间戳,这样zset会根据时间戳进行排序2每次尝试获取信号量之前,要先对集合进行过滤,删除已经过期的信号量3插入信号量到集合之后,要获取当前的信...原创 2020-04-06 16:09:10 · 264 阅读 · 0 评论 -
redis实战2--自动补全组件
基本思路:加入:1用redis队列来存储最近联系人2每次插入前,先删除要加入的联系人,无论队列里有没有,都删除一次3将联系人从左端插入4裁剪出0到99;搜索:1用range获取0到99的队列元素2用java进行过滤3返回结果 //补全最近联系人组件 @Autowired RedisTemplate<String,String> template;...原创 2020-04-06 15:44:47 · 171 阅读 · 0 评论 -
redis实战1--分布式锁的实现
1什么是分布式锁,为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的锁进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大致如下图:a如上图所示,在集群模式下,无法使用java的原生锁(如reentrantlock)来保证每一次只有一个线程来操作这个变...原创 2020-04-06 11:02:55 · 147 阅读 · 0 评论