redis
文章平均质量分 90
Redis入门到实战教程
Maiko Star
Java领域新星创作者
展开
-
Redis实战之-分布式锁-redission
重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?所以可重入锁他的主要意义是防止死锁,我们的synchronized和Lock锁都是可重入的。:是指目前的分布式只能尝试一次,我们认为合理的情况是:当线程在获得锁失败后,他应该能再次尝试获得锁。原创 2024-01-19 15:27:50 · 808 阅读 · 0 评论 -
Redis实战之-分布式锁
分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路那么分布式锁他应该满足一些什么样的条件呢?可见性:多个线程都能看到相同的结果,注意:这个地方说的可见性并不是并发编程中指的内存可见性,只是说多个进程之间都能感知到变化的意思互斥:互斥是分布式锁的最基本的条件,使得程序串行执行高可用:程序不易崩溃,时时刻刻都保证较高的可用性。原创 2024-01-18 16:07:11 · 1231 阅读 · 0 评论 -
Redis实战之-优惠卷秒杀
由于现在我们部署了多个tomcat,每个tomcat都有一个属于自己的jvm,那么假设在服务器A的tomcat内部,有两个线程,这两个线程由于使用的是同一份代码,那么他们的锁对象是同一个,是可以实现互斥的,但是如果现在是服务器B的tomcat内部,又有两个线程,但是他们的锁对象写的虽然和服务器A一样,但是锁对象却不是同一个,所以线程3和线程4可以实现互斥,但是却无法和线程1和线程2实现互斥,这就是 集群环境下,syn锁失效的原因,在这种情况下,我们就需要使用分布式锁来解决这个问题。原创 2024-01-17 11:27:08 · 890 阅读 · 0 评论 -
Redis实现全局唯一Id
每个店铺都可以发布优惠券:当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题:id的规律性太明显受单表数据量的限制场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。原创 2024-01-16 20:50:13 · 617 阅读 · 0 评论 -
实战之-Redis商户查询缓存
核心思路如下:修改ShopController中的业务逻辑,满足下面的需求:根据id查询店铺时,如果缓存未命中,则查询数据库,将数据库结果写入缓存,并设置超时时间根据id修改店铺时,先修改数据库,再删除缓存修改重点代码1:修改的queryById方法设置redis缓存时添加过期时间修改重点代码2。原创 2024-01-15 14:30:12 · 1025 阅读 · 0 评论 -
实战之-Redis代替session实现用户登录
在这个方案中,他确实可以使用对应路径的拦截,同时刷新登录token令牌的存活时间,但是现在这个拦截器他只是拦截需要被拦截的路径,假设当前用户访问了一些不需要拦截的路径,那么这个拦截器就不会生效,所以此时令牌刷新的动作实际上就不会执行,所以这个方案他是存在问题的@Override// 1.获取请求头中的token// 2.基于TOKEN获取redis中的用户// 3.判断用户是否存在// 5.将查询到的hash数据转为UserDTO。原创 2024-01-14 21:17:48 · 1006 阅读 · 0 评论 -
Redis中的Java客户端
SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做官网地址提供了对不同Redis客户端的整合(Lettuce和Jedis提供了统一API来操作Redis支持Redis的发布订阅模型支持Redis哨兵和Redis集群支持基于Lettuce的响应式编程支持基于JDK、JSON、字符串、Spring对象的数据序列化及反序列化支持基于Redis的JDKCollection实现。原创 2024-01-13 17:06:45 · 921 阅读 · 0 评论 -
Redis常见命令、数据类型
Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样。原创 2024-01-11 15:50:03 · 966 阅读 · 0 评论 -
Redis入门
NoSQL最常见的解释是"", 很多人也说它是"NoSQL仅仅是一个概念,泛指非关系型的数据库区别于关系数据库,它们不保证关系数据的ACID特性NoSQL是一项全新的数据库革命性运动,提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入RedisMemCacheMongoDB等。原创 2024-01-11 11:05:36 · 866 阅读 · 0 评论