Cache strategies in Redis
Redis is an in-memory NoSQL data store. Memory is faster than disk, but there are still ways to improve performance. In this article, Camilo Reyes compares caching strategies.
Redis持久化——AOF日志
上一篇文章Redis持久化——内存快照(RDB)我们总结到使用Redis内存快照进行持久化,在t 时刻做了一次快照,然后又在 t+n 时刻做了一次快照,此时如果宕机,则会丢失在此期间内修改的数据。但又不能频繁的进行内存快照,那么有什么办法能够尽可能的减少这种数据丢失呢?Redis提供了另一种持久化的方式——AOF日志(Append Only File)。
【万级并发】电商库存扣减如何设计?不超卖!
随着中国消费认知的不断升级,网购走近千家万户,越来越被人们所接受。淘宝、唯品会、考拉、京东、拼多多等逐渐成为我们生活的重要组成部分。除了常规的购物下单外,这些电商平台还经常搞一些双十一活动,秒杀、大促、限时购,各种营销玩法,层出不穷。今天就来跟大家聊一聊电商技术里的库存扣减。当有很多人同时在买一件商品时(假设库存充足),每个人几乎同时下单成功,给人一种并行的感觉。但真实情况,库存只是一个数值,无论是存在mysql数据库还是redis缓存,减值时都要控制顺序,只能串行来扣减,当然为了保证安全性,会设计一些锁控制操作。
Redis 6.0多线程探秘(上)
想必我们经常听到一个烂大街面试题:Redis为什么选择单线程?这种问法其实并不严谨,为啥这么说呢:Redis的版本很多3.x、4.x、6.x,版本不同架构也是不同的,不限定版本问这种问题,是不是有点耍流氓。限定版本之后 比如4.x,严格意义来说Redis也不是单线程,而是负责处理客户端请求的线程是单线程。最新版本的6.0版本,告别了大家印象中的单线程,用一种全新的多线程来解决问题。你要是这么一回答,面试官估计都会想:啊呀,碰到行家了,反正这个问题我也不太清楚,好好听下他咋解决吧!
Redis 6.2.1 发布
Redis 6.2.1 现已发布,该版本升级迫切性程度为低:修复了编译问题。具体更新内容如下:修复带有已删除记录的 stream 的 sanitize-dump-payload;防止将 client-query-buffer-limit 配置设置为小于 1mb;使 port、tls-port 和 bind 配置选项在运行时可修改...
c#使用csredis操作redis
现在流行的redis连接客户端有StackExchange.Redis和ServiceStack.Redis,为什么选择csredis而不是这两个?.net 最有名望的 ServiceStack.Redis 早已沦为商业用途,在 .NETCore 中使用只能充值;后来居上的 StackExchange.Redis 虽然能用,但线上各种 Timeout 错误把人坑到没脾气,两年多两年多两年多都不解决,最近发布的 2.0 版本不知道是否彻底解决了底层。csredis支持.net40/.net45/.netstandard2.0,基本上满足了常见运行平台,而上面两个基本已经放弃.net40了...
Redis 6.0.7 发布,最后一个 6.0.x 系列版本
Redis 6.0.7 现已发布,修复了一些中等程度的 bug 并添加了新特性。更新内容如下: Bug fixes 在 RDB/ROF 加载期间到达时,CONFIG SET 可能会挂起客户端(当处理完另一条同样以 -LOADING err...
【原创】强撸基于 .NET 的 Redis Cluster 集群访问组件
Hello 大家好,我是TANZAME,我们又见面了。今天我们来聊聊怎么手撸一个 Redis Cluster 集群客户端,纯手工有干货,您细品。随着业务增长,线上环境的QPS暴增,自然而然将当前的单机 Redis 切换到群集模式。燃鹅,我们悲剧地发现,ServiceStack.Redis这个官方推荐的 .NET 客户端并没有支持集群模式。一通度娘翻墙无果后,决定自己强撸一个基于ServiceStack.Redis的Redis集群访问组件...
万字详解Redis,让你大彻大悟
Redis 是什么面试官:你先来说下 Redis 是什么吧!我:(这不就是总结下 Redis 的定义和特点嘛)Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种 NoSQL(not-only sql,泛指非关系型数据库)的数据库。我顿了一下,接着说,Redis 作为一个内存数据库:性能优秀,数据在内存中,读写速度非常快,支持并发 10W QPS。...
不得不会的50个Redis知识点,直接分享给你!
Redis作为目前的主流NoSql数据库,不会是不可能的,在面试中也是非常高频的,一定不能在这个环节丢分,不管是学习,还是面试,以下知识点,都有必要掌握。
Redis 6.0.3 发布
Redis 6.0.2 发布后不到 20 小时,Redis 6.0.3 就接着来了。Redis 6.0.3 主要是修复上一个版本出现的崩溃问题,作者表示自己在 6.0.2 中修复了一个 bug 的同时就被 CI 测试发现了一个崩溃错误...
点赞功能,用MySQL还是Redis
点赞功能是目前app开发基本的功能,今天我们就来聊聊 点赞、评论、收藏等这些场景的db数据库设计问题...
主键生成器效率提升方案|基于雪花算法和Redis控制进程隔离
主键生成效率用数据库自增效率也是比较高的,为什么要用主键生成器呢?是因为需要insert主表和明细表时,明细表有个字段是主表的主键作为关联。所以就需要先生成主键填好主表明细表的信息后再一次过在一个事务内插入。或者是产生支付流水号时要全局唯一,所以要先生成后插入,不能靠数据库主键。
高并发场景-订单库存防止超卖
在电商系统中买商品过程,先加入购物车,然后选中商品,点击结算,即会进入待支付状态,后续支付。 过程需要检验库存是否足够,保证库存不被超卖。
数据库——Redis超详细总结
在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功能上,同时也在追求性能。程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引。开始比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享,大量的小文件缓存也带了了比较高的IO压力。在这个时候,Memcached就自然的成为一个非常时尚的技术产品。
Redis 6.0 新特性-多线程连环13问!
在全国一片祥和IT民工欢度五一节假日的时候,Redis 6.0不声不响地于5 月 2 日正式发布了,吓得我赶紧从床上爬起来,学无止境!学无止境!对于6.0版本,Redis之父Antirez在RC1版本发布时(2019-12-19)在他的博客上连续用了几个“EST”词语来评价...
深入分析Redis的主从复制机制
最近由于疫情影响,时间比较多,所以开始学习之前一直想学,但是却没时间学的Redis。这两天研究了一下Redis的持久化以及主从复制机制,现在已经很晚了,就不多废话了。这篇博客就来谈一谈Redis的主从复制机制。在这里需要提醒一下,主从复制依赖于Redis的快照持久化(RDB),所以如果不了解持久化,请先去研究那一块的内容,可以看看这篇博客:详细分析Redis的持久化操作—RDB与AOF。
Redisson 实现分布式锁的原理分析
在了解分布式锁具体实现方案之前,我们应该先思考一下使用分布式锁必须要考虑的一些问题。互斥性:在任意时刻,只能有一个进程持有锁。防死锁:即使有一个进程在持有锁的期间崩溃而未能主动释放锁,要有其他方式去释放锁从而保证其他进程能获取到锁。加锁和解锁的必须是同一个进程。锁的续期问题。
Redis 性能优化的 13 条军规!
Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O(1)),但由于 Redis 是单线程执行的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段,让 Redis 更加高效的运行。
曹工说Redis源码(7)-- redis server 的周期执行任务,到底要做些啥
本讲,聚焦于redis的周期执行任务。redis启动起来后,基本就剩下两件事,上一讲的主流程分析中,已经讲到了。1个是处理客户端请求,2就是指向周期任务。处理客户端请求,大概会细分为:处理客户端连接事件(客户端连接到redis)、客户端读写事件(客户端发送请求,redis返回响应)