Redis缓存技术
文章平均质量分 60
zero _s
这个作者很懒,什么都没留下…
展开
-
redis中事务的控制
Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项:Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 >在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行。因此,Redis事务能够保证原子性。EXEC命令会触发执行事务中的所有命令。因此,当某个客户端正在执行一次事务时,如果它...原创 2022-05-01 20:14:02 · 588 阅读 · 0 评论 -
分布式锁和事务的优先级问题
如果service层中某个方法需要用到事务,且需要加分布式锁,则一般事务在内层,锁在外层,避免出现已经解锁了但是事务还没提交,从而出现优惠券超领的情况所以一般都是事务在service层中添加,但是分布式锁在controller层中添加 @ApiOperation("领取优惠券") @GetMapping("/add/promotion/{coupon_id}") public JsonData addPromotionCoupon( @ApiParam原创 2021-10-02 21:05:15 · 2622 阅读 · 0 评论 -
利用雪花算法做分布式id
雪花算法做分布式id转载 2021-09-11 22:37:49 · 59 阅读 · 0 评论 -
redis的主从复制+读写分离
⽬标:读写分离,扩展主节点的读能⼒,分担主节点读压⼒容灾恢复,⼀旦主节点宕机,从节点作为主节点的备份可以随时顶上来一主二从环境的搭建:通常主从都是搭建在不同的服务器上,这里由于资源的限制,在一台服务器上,安装三个redis,作为主从服务器,来模拟一主二从的环境。需要注意的是,搭建在不同服务器上的时候,需要各个服务器间网络互通。首先要配置各自的redis.conf文件:启动一主二从服务:第一个参数是启动项,第二个是指定配置文件主从复制+哨兵监控...原创 2021-09-03 23:37:25 · 222 阅读 · 0 评论 -
info+config命令+key淘汰算法
info 命令 查看信息会显示各个模块的信息,比如service client memoryconfig命令 配置信息config get key、config set key 其中key是conf文件中配置的各个keyconfig set save "10 2" // 设置RDB的时间为每十秒两次key过期时间删除策略Redis服务器实际使⽤的是惰性删除和定期删除两种策略:通过配合使⽤这两种删除策略,服务器可以很好地在合理使⽤CPU时间和避免浪...原创 2021-09-02 21:57:30 · 209 阅读 · 0 评论 -
redis的持久化
1、RDB持久化策略fork创建⼦进程,RDB持久化过程由⼦进程负责,会在后台异步进⾏快照操作,快照同时还可以响应客户端请求。 缺点:每次快照是⼀次全量备份,fork⼦进程进⾏后台操作,⼦进程存在开销在快照持久化期间修改的数据不会被保存,可能丢失数据。2、AOF持久化介绍append only file,追加⽂件的⽅式,⽂件容易被⼈读懂以独⽴⽇志的⽅式记录每次写命令, 重启时再重新执⾏AOF⽂件中的命令达到恢复数据的⽬的写⼊过程宕机,也不影响之前的数据,可以通过 redi...原创 2021-09-02 21:03:45 · 84 阅读 · 0 评论 -
springcache中常用的注解
Cacheable注解标记在⼀个⽅法上,也可以标记在⼀个类上缓存标注对象的返回结果,标注在⽅法上缓存该⽅法的返回值,标注在类上缓存该类所有的⽅法返回值一般标注在方法上。@Cacheable(value = {"product"},key = "#root.methodName",cacheManager = "cacheManager1Day") // 放在service层的实现类的某个方法上// value 缓存名称// key 缓存的key规则,可以⽤springEL表达..原创 2021-09-01 23:03:53 · 1011 阅读 · 0 评论 -
springcache缓存框架
1、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <!--mybatis plus和springboot整合--> <dependency> <groupId&.原创 2021-09-01 21:34:29 · 78 阅读 · 0 评论 -
sort 和zsort的使用
Redistemplete.boundSetOps("key");public void testSet(){BoundSetOperations operationLW =redisTemplate.boundSetOps("user:lw");operationLW.add("A","B","C","D","E");System.out.println("⽼王的粉丝:"+operationLW.members());BoundSetOperations operationXD =redi.原创 2021-09-01 19:56:02 · 318 阅读 · 0 评论 -
list和hash 数据结构的使用
分布式三大问题: 分布式锁、分布式事务、分布式文件热销榜单的实现@RestController@RequestMapping("api/v1/rank")public class RankController { @Autowired private RedisTemplate redisTemplate; private static final String DAILY_RANK_KEY = "video:rank:daily"; @Req..原创 2021-08-31 23:12:57 · 182 阅读 · 0 评论 -
分布式锁的实现
避免共享资源并发操作导致数据问题加锁: 本地锁:synchronize、lock等,锁在当前进程内,集群部署下依旧存在问题 分布式锁:redis、zookeeper等实现,虽然还是锁,但是多个进程共⽤的锁标记,可以⽤Redis、Zookeeper、Mysql等都可以。设计分布式锁应该考虑的东⻄排他性:在分布式应⽤集群中,同⼀个⽅法在同⼀时间只能被⼀台机器上的⼀个线程执⾏容错性:分布式锁⼀定能得到释放,⽐如客户端奔溃或者⽹络中断满⾜可重⼊、⾼性能、⾼可⽤注意分布式锁的开销、锁粒...原创 2021-08-30 22:13:39 · 104 阅读 · 0 评论 -
redis+springboot
Jedis 是直连模式,在多个线程间共享⼀个 Jedis 实例时是线程不安全的,需要使⽤连接池其API提供了⽐较全⾯的Redis命令的⽀持,相⽐于其他Redis 封装框架更加原⽣Jedis中的⽅法调⽤是⽐较底层的暴露的Redis的API,Java⽅法基本和Redis的API保持着⼀致使⽤阻塞的I/O,⽅法调⽤同步,程序流需要等到socket处理完I/O才能执⾏,不⽀持异步操作。lettuce:⾼级Redis客户端,⽤于线程安全同步,异步响应基于Netty的的事件驱动,可以在多个线程间并发访问,通过异步原创 2021-08-30 20:20:36 · 114 阅读 · 0 评论 -
redis--基础
前期准备winscp----> windox系统中远程交互linux,传文件等xshell----> 远程登录linux并进行操作安装redis:redis 是虚拟机安装;1、yum install -y gcc-c++ autoconf automake ----- 安装编译器2、解压--- tar -zxvf redis-6.2.5.tar.gzmv 就文件名 新文件名make --- 安装redis-server 启动...原创 2021-08-29 11:26:53 · 70 阅读 · 0 评论 -
Redis缓存技术
缓存技术原创 2021-08-15 10:27:39 · 132 阅读 · 0 评论