![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NoSQL
文章平均质量分 87
Blue Protocol
这个作者很懒,什么都没留下…
展开
-
Redis缓存数据库双写不一致问题
Redis双写不一致,也就是数据在缓存和数据库的一致性问题的讨论在业内是讨论得比较热门的,也是比较有争议性的。原创 2023-04-16 09:09:36 · 629 阅读 · 0 评论 -
Lua脚本
Lua脚本是一个小巧的轻量级的脚本语言,它的设计目的你说为了通过嵌入到应用程序中从而为应用程序提供拓展和定制功能。Lua是由C语言来编写的,几乎所有的操作系统和平台都可以编译和运行Lua脚本语言。在所有脚本引擎中,Lua的速度是最快的。所有它才被作为嵌入式脚本语言。Lua脚本很容易被C、C++代码调用,也可以反过来调用C、C++代码。原创 2023-04-13 13:41:28 · 6879 阅读 · 0 评论 -
Redis锁的租约问题
这就是典型的租约机制,用户申请了一个租约时长为lock_timeout的锁,用户可以在租约期间使用完之后正常释放锁,如果说了租约时间,即使用户没有释放锁,Redis也会自动释放锁。原创 2023-04-13 00:32:46 · 491 阅读 · 0 评论 -
Redis 缓存穿透、缓存击穿和缓存雪崩
缓存穿透、缓存击穿和缓存雪崩这三个概念和知识点我们一定要掌握,而且我们也必须掌握其解决方案,因为我们工作中经常会遇到缓存穿透和缓存雪崩的情况。原创 2023-02-13 15:35:42 · 859 阅读 · 0 评论 -
布隆过滤器的使用
Redis经常会被问道缓存击穿问题,比较优秀的解决办法是使用布隆过滤器,也有使用空对象解决的,但是最好的办法肯定是布隆过滤器,我们可以通过布隆过滤器来判断元素是否存在,避免缓存和数据库都不存在的数据进行查询访问;也就是说 Guava 的布隆过滤器会根据Funnel 类的定义,计算一个对象的哈希值,放入过滤器。Google 的 Guava 库提供了使用布隆过滤器的 API 类(BloomFilter.class),它是线程安全的。布隆过滤器是用来防止缓存穿透的,我们需要知道如何使用布隆过滤器。原创 2023-02-13 14:31:48 · 851 阅读 · 0 评论 -
Redis过期删除策略
Redis过期删除策略原创 2023-02-12 15:03:30 · 674 阅读 · 0 评论 -
分布式锁的实现
虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,参加活动的商品一般都是限量库存,如何防止库存超卖,避免并发问题呢?分布式锁的目的是保证在分布式部署的应用集群中,多个服务在请求同一个方法或者同一个业务操作的情况下,对应业务逻辑只能被一台机器上的一个线程执行,避免出现并发问题。分布式场景下解决并发问题,需要应用分布式锁技术。由于单体锁是基于 JVM 层面上的锁,只能控制单个实例上的并发访问安全,多个实例下依然存在数据一致性的问题,这个时候,就轮到我们的分布式锁出场了。原创 2023-01-02 20:57:42 · 679 阅读 · 0 评论 -
Redis 缓存数据库
数据在集群模式中是分开存储的,那么节点之间想要知道其他节点的状态信息,包括当前集群状态、集群中各节点负责的哈希槽、集群中各节点的master-slave状态、集群中各节点的存活状态等是通过建立TCP连接,使用gossip协议来进行集群信息传播。而且,哨兵模式没有解决master写数据的压力。哨兵模式是基于主从模式的,哨兵(sentinel)模式是为了解决主从模式中的问题而提出来,既当 master 节点宕机时,由于无法选择哪一个 slave 节点当 master 节点,导致 Redis 无法保证高可用。原创 2023-01-02 14:17:40 · 1147 阅读 · 0 评论 -
MongoDB的安装
在安装MongoDB数据库的时候,有可能出现安装速度较慢,然后取消安装以后,再一次重新去安装的时候,在安装的最后一步可能会出现无法启动服务的现象。删除以后我们自己在data目录下创建一个db文件夹;原创 2022-11-13 13:50:32 · 300 阅读 · 0 评论