• 因为一次redis缓存穿透,全面探究redis能做什么

    问题背景:网关支付,支付之前需要根据商户去获取支持的银行列表,银行列表是商家首次在我们系统里申请开户的时候配置进去的,第一次获取列表是通过调远程接口查询数据库获取的,获取成功后,结果保存在redis缓存中,有效期设置6小时,以后每次查询都直接访问redis缓存即可。出现问题是有一批新商户没有配置银行列表,发起支付获取银行列表时,首次调用接口获取结果失败,没有放置缓存;商户反复提...

    Redis 2020年10月12日 1487 0
  • Redis到底该怎么搞呢?主从复制以及redis复制演进全面进攻

    一、前言通过持久化功能,Redis保证了即使在服务器宕机情况下数据的丢失非常少。但是如果这台服务器出现了硬盘故障、系统崩溃等等,不仅仅是数据丢失,很可能对业务造成灾难性打击。为了避免单点故障通常的做法是将数据复制多个副本保存在不同的服务器上,这样即使有其中一台服务器出现故障,其他服务器依然可以继续提供服务。当然Redis提供了多种高可用方案包括:主从复制、哨兵模式的主从复制、以...

    Redis 2020年08月06日 1549 0
  • Redis 到底是怎么实现“附近的人”这个功能的呢?

    Redis 到底是怎么实现“附近的人”这个功能的呢?前言:针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基...

    Redis 2020年05月12日 1593 0
  • 借助Redis完成延时任务

    相信我们或多或少的会遇到类似下面这样的需求:第三方给了一批数据给我们处理,我们处理好之后就通知他们处理结果。大概就是下面这个图说的。本来在处理完数据之后,我们就会马上把处理结果返回给对方,但是对方要求我们处理速度不能过快,要有一种人为处理的效果。换句话就是说,就算是处理好了,也要晚一点再执行通知操作。这就是一个典型的延时任务。延时,那还不简单,执行完之后,让它Sleep一下就好...

    Redis 2020年05月04日 1689 0
  • Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?

    Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给...

    Redis 2020年05月03日 1826 0
  • Redis从入门到精通,至少要看看这篇

    常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。图片来自 Pexels由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才会产生作用。但这并不能减少业务逻辑对数据库的增删改操作的 IO 压力,因此缓存技术应运而生,该技术实现了对热点数据的高速缓存,可以大大缓解后端数...

    Redis 2020年04月20日 1397 0
  • Sprinig Boot + Redis 实现接口幂等性,写得太好了

    一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等二、常见解决方案唯一索引 -- 防止新增脏数据token机制 -- 防止页面重复提交悲观锁...

    Redis 2020年04月19日 1555 0
  • 为什么Redis 单线程却能支撑高并发?

    最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操...

    Redis 2020年04月11日 1415 0
  • Redis 高可用

    主从复制#Redis 5.0 之后提供了REPLICAOF替代了之前的SLAVEOF命令来实现Master-Slave之间的数据交换 接下来我们设置主从复制模型:Master节点首先修改redis-master.conf配置文件来配置端口和安全认证bind 127.0.0.1port 6379 #端口requirepass redis #...

    Redis 2020年04月08日 1698 0
  • 听说Redis都会遇到并发、雪崩等难题?我用10分钟就解决了

    一、Redis雪崩、穿透、并发等5大难题解决方案缓存雪崩数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。比如一个雪崩的简单过程:1、redis集群大面积故障2、缓存失效,但依然大量请求访问缓存服务redis3、redis大量失效后,大量请求转向到mysql数据库4、mysql的调用量暴增,很快就扛不住了,...

    Redis 2020年03月17日 2223 0
  • 超高性能 key-value 数据库 Redis 5.0.8 稳定版发布

    前言Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。官方测评SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:Linux 2.6, Xe...

    Redis 2020年03月14日 1684 0
  • 为什么 Redisson 会有这么好用?

    Redis 是最流行的 NoSQL 数据库解决方案之一,而 Java 是世界上最流行(注意,我没有说“最好”)的编程语言之一。虽然两者看起来很自然地在一起“工作”,但是要知道,Redis 其实并没有对 Java 提供原生支持。相反,作为 Java 开发人员,我们若想在程序中集成 Redis,必须使用 Redis 的第三方库。而 Redisson 就是用于在 Java 程序中操作...

    Redis 2020年03月03日 3087 0
  • 原来redis这么简单,跟着文章操作一遍你就会了

    原来redis这么简单,跟着文章操作一遍你就会了!一、Redis简介Redis是一个开源的使用ANSI C语言编写的Key-Value数据库,是一种应用非常广泛的NoSQL数据库,性能极高,拥有出色的读写速度,适用性非常的广。因此也被广泛应用在中大型的项目中,可以在某些特定应用场景下替代传统数据库,可以巧妙地实现一些特定的功能:session共享、购物车等待。近期有部分同学说公...

    Redis 2020年02月24日 1596 0
  • Redis几乎所有命令都在这了,还说你不会?

    密码登录:1. redis-cli -h 127.0.0.1 -p 6379 -a flyvar字符串类型:1. set name ericzhao // set key value [EX seconds] [PX milliseconds] [NX|XX]2. redis 127.0.0.1:6379> SET KEY VALUE [EX seconds] [PX ...

    Redis 2020年01月02日 1441 0
  • 腾讯百亿级请求高可用Redis(codis)分布式集群实践

    一、Redis有哪些常用的应用场景1)string | 计数器,用户信息(id)映射,唯一性(例如用户资格判断),bitmap2)hash | 常见场景:存储对象的属性信息(用户资料)3)list | 常见场景:评论存储,消息队列4)set | 常见场景:资格判断(例如用户奖励领取判断),数据去重等5)sorted set | 常见场景:排行榜,延时队列6)其他 | 分布式锁设...

    Redis 2019年12月14日 1761 0
  • 10亿数据量只需要100MB内存,redis的位存储为什么这么牛?

    本文主要和大家分享一下redis的高级特性:bit位操作。力求让大家彻底学会使用redis的bit位操作并掌握其底层实现原理!主要包含以下内容:redis位操作命令示例底层数据结构分析为什么他的算法时间复杂度是O(1)?10亿数据量需要多大的存储空间?redis位操作适合哪些应用场景?本文redis试验代码基于如下环境:操作系统:Mac OS 64位版本:Redis 5.0.7...

    Redis 2019年12月08日 2427 0
  • 围观,阿里P7大佬超详细揭秘 Redis 持久化

    Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持的数据类型很丰富,如字符串、链表、集 合、以及散列等,并且还支持多种排序功能。什么叫持久化?用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等...

    Redis 2019年11月05日 2616 0
  • Redis为什么默认16个数据库?

    导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。 一、16个数据库的由来 Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个关系数据库实例中可以创建多个...

    Redis 2019年10月29日 1881 0
  • 万万没想到,Redis多线程版本竟然比原生版本快那么多

    如果我告诉您有一个 Redis 的分支版本,它的性能比原生的 Redis 快 5 倍,而且延迟却降低近 5 倍,你会不会想了解一下这个项目?而如果您不再需要哨兵节点并且您的副本可以接受读取和写入,这将有可能使分片数量减少 10 倍,这样对你的吸引力是不是更大了呢? 我说的这个分支版本,它其实是 Redis 的一个分叉版本,名叫 KeyDB 。K...

    Redis 2019年10月14日 1761 0
  • 基于Redis设计一个百万级用户的高并发系统

    目录 抽奖系统的背景引入 结合具体业务需求分析抽奖系统 一个未经过优化的系统架构 负载均衡层的限流 Tomcat线程数量的优化 ...

    Redis 2019年10月11日 2217 0
  • Java架构师-Redis单线程?别逗了,Redis6.0多线程重磅来袭

    2019年的 RedisConf 比以往时候来的更早一些,今年会议时间是4月1-3号,仍然是在旧金山鱼人码头Pier 27。恰逢今年是 Redis 第10周年,规模也比以往大一些,注册人数超过1600人,总共有80个议题,除了RedisLabs外还有很多云厂商和Redis用户带来分享。Redis 作者 antirez 在 RedisConf 2019 做了分享,其中一段展...

    Redis 2019年10月09日 1898 0
  • 用Redis实现搜索附近人的功能——geohash算法的使用

    笔者之前文章介绍过geohash算法,那么今天,我们来讲一下Redis的geo功能。 GeoHash与Z阶曲线的关系 1 引言 “附近的人”在社交类APP已成为标配的功能,简单一点的实现方式可以把坐标存至关系型数据库,通过计算的坐标点距离实现,这种计算可行但计算速度远不及内存操作级别的NoSql数据库。基于Redis的geo就可以轻松实现。 2 Redis处理位置坐标...

    Redis 2019年09月27日 2746 0
  • redis list判断是否包含某值

    在redis的list当中,如果想要判断list中是否包含某值,可以用下面的方法:List list = RedisUtil.getJedis().lrange("testlist",0,RedisUtil.getJedis().llen("testlist")); for(Object item:list){ String value =...

    Redis 2019年07月26日 17080 0