Redis
文章平均质量分 59
九八年的尾巴
一个愿意分享和倾听的年轻人
展开
-
Redis之缓存雪崩和缓存穿透解决方案讲解
什么是缓存雪崩?如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。由于原有缓存失效,新缓存味道期间所有原本应该访问缓存的请求,都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机有什么方案来防止缓存雪崩?1.加锁排队mutex互斥锁解决,Redis的SETNX取set一个mutex key,当操作成功返回时,再进行loaddb的操作并回设缓存,否则就重新整个get缓存方法2.数据预热缓存预热就是系统上线后,将相关的缓存数据直接加原创 2021-02-19 10:55:12 · 159 阅读 · 0 评论 -
SpringBoot项目初始化讲解实现缓存预热
场景:将一千万用户白名单load缓存,用户请求的时候判断该用户是否是缓存里面的用户SpringBoot实现初始化加载配置Step1:采用实现springboot ApplicationRunner该方法仅在SpringApplication.run(…)完成之前调用Step2:采用实现InitializingBeanInitializaingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet()方法。在spring初始化bean的时候,如果bean实现了I原创 2021-02-19 10:08:15 · 2591 阅读 · 0 评论 -
Redis实现分布式集群环境session共享
多机器部署同一套服务(代码),性能更好,能承受更高的用户并发当一个用户发送请求到第一台机器,内存存储sessioni的话,剩余的99台每次还需要存储Cookie与SessionCookie: Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息,我们可以看到在服务器写的cookie,会通过响应头Set-Cookie的方式写入到浏览器HTTP协议是无状态的,并非TCP一样进行三次握手,对于一个浏原创 2021-02-18 22:07:26 · 280 阅读 · 0 评论 -
SpringBoot:整合Redis以及工具类常用API使用
Step1:引入依赖类似于连接工具 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>Step2:引入BeanredisTemplate的使用 类似于:monogoTemplate、jdbcTemplate数据原创 2021-02-18 21:36:34 · 443 阅读 · 0 评论 -
Redis事务机制讲解与传统关系型事务比较
Redis基本命令MULTI与EXEC命令以 MULTI 开始一个事务,然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令DISCARD命令DISCARD 命令用于取消一个事务, 它清空客户端的整个事务队列, 然后将客户端从事务状态调整回非事务状态, 最后返回字符串 OK 给客户端, 说明事务已被取消get class应该返回nil 因为之前我有拿这个key操作过 不用在乎当输入EXEC报错表示:EXEC没有MULTI 这两个是跟着的WATCH命令W原创 2021-02-17 22:19:57 · 284 阅读 · 1 评论 -
Redis:消息订阅发布演示讲解
作用: 发布订阅类似于信息管道,用来进行系统之间消息解耦,类似于mq,rabbitmq、rocketmq、kafka、activemq主要有消息发布者和消息订阅者。比如运用于:订单支付成功,会员系统加积分、钱包进行扣钱操作、发货系统(下发商品)消息发布者通过管道channel将消息分发到1、2、3订阅者上问题:为什么不直接将消息发布到订阅上呢? 其实就是解耦只需要关心发布有没有将消息发不过去 订阅有没有去订阅Redis发布消息实操PUBLISH:发布消息首次发布显示有0个订阅在监听PUBL原创 2021-02-17 20:46:42 · 161 阅读 · 0 评论 -
Redis:五种数据类型数据结构讲解与实战演练
String(字符串)Redis命令在线网站可在网站实现Redis命令:try.redis.ioString是最常用的一种数据类型,普通的key/value存储都可以归为此类连接redis命令 ./redis-cli -p 6379set/getset:设置key对应的值为String类型的valueget:获取key对应的值mget(mget = many get)批量获取多个key的值,如果可以不存在则返回nullincr&&incrby(如果值不是Interg原创 2021-02-17 18:40:44 · 175 阅读 · 0 评论 -
Redis作为数据库和作为缓存的选择,线上怎么优雅使用?
Redis作为数据库使用有什么优缺点?优点没有Scheme约束(就像mysql建立数据表,字段数据类型、长度等),数据结构的变更相对容易,一开始确定数据类型, 抗压能力强,性能极高,10万/qps(比如一些互联网项目,你的功能会不断迭代,字段的属性类型一开始不能确定)缺点没有索引,没有外键,缺少int/date等基本数据类型,多条件查询需要通过集合内联(sinter,zinterstore) 和连接间接实现开发效率低,可维护性不佳Redis作为缓存的使用,搭配数据库使用的两种方案jedis整合使原创 2021-02-16 18:19:24 · 241 阅读 · 0 评论 -
刨析Redis和memcached和MySql之间的区别
从数据库类型、数据存储方式、特殊功能讲解Redis和memcached和Mysql的区别分析为什么越来越的人抛弃memecached选择redis作为同款功能的内存产品,Redis和memcached各有什么优势?内存管理机制Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小, 将分配的内存分割成特定长度的块 以存储相应长度的key-value数据记录,以完全解决内存碎 片问题。空闲列表进行判断存储状态,【类似于Java虚拟机对象的分配,空闲列表】原创 2021-02-16 18:18:18 · 215 阅读 · 0 评论 -
Redis是什么,为什么大小公司都在使用?
Redis微信红包、微博、淘宝、天猫、京东、唯品会说到redis不得不讲nosqlNoSQL是不同于传统的关系数据库的数据库管理系统的统称。其两者最重要的区别在于NOSQL不使用SQL作为查询语言。NoSQL数据存储可以不需要固定的表格模式。NoSQL是基于键值对的,可以想象成表中的主键和值的对应关系常见NoSQLRedis、memcached、mongodb、guava(loadingCache)Redis的定义Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、原创 2021-02-16 18:16:59 · 749 阅读 · 0 评论