Redis
文章平均质量分 92
Redis
Purine King
这个作者很懒,什么都没留下…
展开
-
Redis 基础 - 点赞/点赞排行榜
点赞/点赞排行榜原创 2022-06-07 20:42:35 · 576 阅读 · 0 评论 -
Redis 基础 - 优惠券秒杀《基于Redis消息队列实现》
使用Redis消息队列stream实现秒杀原创 2022-06-01 21:30:22 · 541 阅读 · 0 评论 -
Redis 基础 - 优惠券秒杀《初步优化(异步秒杀)》
Redis基础 - 基本类型及常用命令Redis基础 - Java客户端Redis 基础 - 短信验证码登录Redis 基础 - 用Redis查询商户信息Redis 基础 - 优惠券秒杀《非集群》Redis 基础 - 优惠券秒杀《分布式锁(初级)》Redis 基础 - 优惠券秒杀《分布式锁(使用Redisson)》Redis优化秒杀回顾秒杀业务的流程前端发起请求,到达Nginx,Nginx会把请求负载均衡到Tomcat,在Tomcat内部的业务流程是,根据优惠券id查询优惠券->判断原创 2022-05-30 20:18:44 · 393 阅读 · 0 评论 -
Redis 基础 - 优惠券秒杀《分布式锁(使用Redisson)》
Redis基础 - 基本类型及常用命令Redis基础 - Java客户端Redis 基础 - 短信验证码登录Redis 基础 - 用Redis查询商户信息Redis 基础 - 优惠券秒杀《非集群》Redis 基础 - 优惠券秒杀《分布式锁(初级)》基于setnx实现的分布式锁存在的问题1)不可重入同一个线程无法多次获取同一把锁2)不可重试获取锁只尝试一次就返回false,没有重试机制3)超时释放锁超时释放虽然可以避免死锁,但如果是业务执行耗时较长,也会导致锁释放,存在安全隐患4)主原创 2022-05-26 20:21:58 · 661 阅读 · 0 评论 -
Redis 基础 - 优惠券秒杀《分布式锁(初级)》
参考Redis基础 - 基本类型及常用命令Redis基础 - Java客户端Redis 基础 - 短信验证码登录Redis 基础 - 用Redis查询商户信息Redis 基础 - 优惠券秒杀《非集群》synchronized在集群上使用时的问题synchronized只能够保证一个JVM内部的多个线程之间的互斥,而无法在集群之间互斥,要想解决这个问题必须要使用分布式锁。分布式锁是满足分布式系统或集群模式下“多进程可见”并且能“互斥”的锁。为何需要分布式锁比如有两个JVM,JVM1和JVM2原创 2022-05-24 21:06:36 · 304 阅读 · 0 评论 -
Redis 基础 - 优惠券秒杀《非集群》
参考Redis基础 - 基本类型及常用命令Redis基础 - Java客户端Redis 基础 - 短信验证码登录Redis 基础 - 用Redis查询商户信息摘要用Redis生成保证唯一性的订单id代码示例1~代码示例8是优惠券秒杀简单代码的修改过程,可以加深印象,还可以巩固基础知识本文仅限于非集群模式的场景关于订单id当商铺发优惠券后,大量用户就会去抢购。抢购后,就会生成订单,并插入到订单表。当使用数据表自增主键做订单id时id的规律性太明显比如某用户今天下单后,其订单号原创 2022-05-20 21:01:16 · 460 阅读 · 0 评论 -
Redis 基础 - 用Redis查询商户信息
请参考Redis基础 - 基本类型及常用命令Redis基础 - Java客户端Redis 基础 - 短信验证码登录本文摘要本文是Redis缓存的简单应用,以根据id查询商户信息为例,先简单介绍基本使用。接着根据缓存更新策略对代码实例进行简单修改。最后再简单介绍缓存穿透、缓存雪崩、缓存击穿的问题以及代码修改。Redis缓存简单应用缓存是存储数据的临时地方,一般读写性能较好。前端请求时,先到达Redis。查看有无数据,有则直接返回。没有时才会去数据库查。能大大减轻数据库的压力。当然,查数据库后,原创 2022-05-18 21:35:44 · 499 阅读 · 0 评论 -
Redis 基础 - 短信验证码登录
本文摘要先简单列出用session方式,然后简单换为用Redis的方式,并最后通过优化来解决一些小问题。基于session实现短信登陆的简单流程发送验证码前端把手机号传给服务端,后端经过校验后,生成验证码并存入到session中,并通过第三方平台给用户手机发短信验证码。登陆/注册前端把登陆用的手机号和刚才接收的验证码传给服务端,后端经过校验后,若没毛病就用手机号去查用户表,没有用户的话给他注册,若有用户,就算是登陆成功。注册/登陆成功后,把用户的部分信息(除去敏感信息)放到session中。1原创 2022-05-16 21:48:17 · 2016 阅读 · 0 评论 -
Redis基础 - Java客户端
在Redis官网中提供了各种语言的客户端。地址:https://redis.io/clients前三名客户端是jedis、lettuce、redisson。jedis:以Redis命令作为方法名称,学习成本低,简单实用。但是jedis实例是线程不安全的,所以每个线程都要建立单独的jedis势力,所以多线程环境下需要基于连接池来使用。lettuce:是基于netty实现的,支持同步、异步和响应式编程方式,并且是线程安全的。支持Redis的哨兵模式、集群模式和管道模式。redisson:是一个基于Re原创 2022-05-13 22:54:00 · 336 阅读 · 0 评论 -
Redis基础 - 基本类型及常用命令
Redis数据结构介绍Redis是一个key-value的数据库,key一般是string类型,不过value的类型多种多样:string《 hello world 》Hash《 {name: “jack”, age: 12} 》List 《 [A -> B -> C -> C] 》Set 《 {A, B, C} 》SortedSet 《 {A: 1, B: 2, C: 3} 》GEO 《 {A: (120.3, 30.5)} 》BitMap 《 011101010101原创 2022-05-13 22:28:02 · 667 阅读 · 0 评论 -
Redis基础 - 安装
centOS7 安装Redis安装Redis依赖Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖。yum install -y gcc tcl上传安装包并解压把Windows本地下载的Redis安装包(如:redis-6.2.6.tar.gz)上传到Linux的任意目录(如:/usr/local/src/),因为这个目录一般放安装文件。进入该目录cd /usr/local/src/解压安装包tar -zxvf redis-6.2.6.tar.gz解压后出现原创 2022-05-13 21:54:18 · 319 阅读 · 0 评论