
Redis
Susceptible0506
这个作者很懒,什么都没留下…
展开
-
JAVA面试准备之Redis 如何使用Redis做异步队列
如何使用Redis做异步队列?1.使用List作为队列,RPUSH生产消息,LPOP消费消息缺点:没有等待队列里有值就直接消费弥补:可以通过在应用层引入Sleep机制去调用LPOP重试如果没有消息的时候,可以使用BLPOP去等待,直到队列里有消息以上的生产者消费者模式的缺点在于只能供一个消费者消费,消费完了就没了。想要实现生产一次,让多个消费者消费。2.使用red...原创 2020-03-14 20:51:49 · 774 阅读 · 0 评论 -
JAVA面试准备之Redis 如何通过Redis实现分布式锁
分布式锁指的是:控制分布式系统或不同系统之间共同访问共享资源的一种锁的实现。分布式锁需要解决的问题互斥性:任一时刻,只能有一个客户端获取锁安全性:锁只能被持有该锁的客户端删除,不能被其他客户端删除死锁:获取锁的客户端因为某一些原因而宕机,未能释放锁,其他客户端再也无法获取到该锁,而导致了死锁。容错:当redis的某一些节点发生宕机时,客户端仍然能够获取锁和释放锁。如何通过R...原创 2020-03-14 20:49:40 · 815 阅读 · 0 评论 -
JAVA面试准备之Redis 如何从海量Key里查询出某一固定前缀的Key
如何从海量Key里查询出某一固定前缀的Key?1.使用keys执行(对线上业务存在很大的影响)2.使用scan指令:无阻塞的提取出指定模式的key列表,scan每次执行只会返回少量元素,所以可以用于生产环境,而不会像keys命令带来的可能堵塞服务器的问题。使用keys对线上的业务的影响KES pattern:查找所有符合给定模式pattern的keyKEYS指令一次性...原创 2020-03-14 20:47:08 · 3111 阅读 · 0 评论 -
JAVA面试准备之Redis Redis常用数据类型
StringHash(客户端对象序列化后存储可以用这个数据)List(从左往右取数据,后进先出,类似栈),可以用来实现最新消息排行版的功能Set(添加不存在的元素,添加成功,返回1。添加不成功,返回0)Redis对集合实现了交并集的操作,比如将微博关注存在set中,就可以查询到两个用户的共同关注Sort Set(有序的集合)(分数,值)分数可重复,值不可重复...原创 2020-03-14 20:44:52 · 195 阅读 · 0 评论 -
JAVA面试准备之Redis 为什么Redis能这么快
为什么Redis能这么快?速度:100000+QPS(QPS即query per second,每秒内查询次数)完全基于内存,绝大部分请求是纯粹的内存操作,执行效率高 数据结构简单,对数据操作也简单。数据结构就是HashMap(key-value) 采用单线程,单线程也能处理高并发请求,想多核也可以启动多实例。单线程指其主线程是单线程的。主线程包括IO事件的处理,以及IO对应的相关请求...原创 2020-03-14 20:42:53 · 312 阅读 · 0 评论 -
JAVA面试准备之Redis 缓存简介
Mysql的数据都是存放在磁盘中的,虽然在数据库层也做了对应的缓存,但这种数据库层次的缓存,一般针对的是查询的内容,而且力度也比较小,一般只有表中数据没有发生变更的时候,数据库中对应的缓存才会发挥作用。但这并不能减少业务系统对数据库产生的增删改查的IO压力。因此缓存技术应运而生,该技术实现了对数据库数据的高速缓存,提高业务响应速度,极大缓解后端数据库的压力。一般在客户端和存储层之间加...原创 2020-03-14 20:40:31 · 569 阅读 · 0 评论 -
JAVA面试准备之Redis
1.缓存简介https://blog.youkuaiyun.com/qq_31965925/article/details/1048674772.为什么Redis能这么快https://blog.youkuaiyun.com/qq_31965925/article/details/1048675133.Redis常用数据类型https://blog.youkuaiyun.com/qq_31965925/artic...原创 2020-03-14 20:52:09 · 138 阅读 · 0 评论 -
JAVA面试准备之Redis Redis集群原理
使用key计算出Hash值,然后顺时针找到第一个能够存储数据的节点。比如Object A最终存储在Node A上。通过这样的操作,就可以将数据分散存储到不同的node上。如果Node C宕机了,则Object C会存储到Node D中。C宕机,受到影响的数据只有Node C到Node B之间的数据,需要重写到D节点中,其他节点的数据不会受到影响。并且当有新的Hash值的B-C的...原创 2020-03-23 19:46:48 · 202 阅读 · 0 评论 -
JAVA面试准备之Redis Redis的同步机制
主从同步原理Redis是由一个Master作为写的操作,多个slave作为读的操作。Master和slave代表一个个的Redis实例。定期的数据备份操作是单独的一个slave完成的。主从数据应满足最终一致性:使用主从同步或从从同步实现。主从同步的弊端在于:不具备高可用性,当master挂掉时,redis将不能对外提供写入操作。Redis Senti...原创 2020-03-23 19:44:40 · 1179 阅读 · 1 评论 -
JAVA面试准备之Redis 使用Pipeline的好处
原创 2020-03-23 19:42:36 · 505 阅读 · 0 评论 -
JAVA面试准备之Redis Redis持久化方式
Redis持久化方式有哪些?一旦redis服务器退出,数据就会丢失。为了解决这个问题,Redis提供了三种解决方案,将内存中的数据保存到磁盘中,避免数据丢失:1.RDB(快照)持久化:保存某个时间点的全量数据快照2.AOF(Append-Only-File)持久化:保存写状态。记录下除了查询以外的所有变更数据库状态的指令;以append的形式追加保存到AOF文件中(增量)。3.RD...原创 2020-03-23 19:40:19 · 359 阅读 · 0 评论 -
Redis基础7 Redis持久化
Redis持久化Redis的高性能是由于所有的数据都存储在内存当中,为了使Redis在重启之后,仍然能保证数据不丢失,那么就需要将数据从内存当中同步到硬盘上,这个过程称为持久化。持久化方式:RDB、AOFRDB持久化:默认的持久化方式在指定时间间隔内,将数据的快照写入磁盘中AOF持久化:以日志的形式,记录服务器执行的每一步操作在Redis服务器启动之初,读取该...原创 2020-03-20 15:08:24 · 135 阅读 · 0 评论 -
Redis基础6 多数据库和事务
多数据库一个redis实例,可以包含多个数据库0-15,最多16个客户端可以指定链接哪个数据库默认连接的是0号数据库将一个数据库的key转移到另外一个数据库将数据库0的myset数据转移到数据库1中7.2 事务在事务中,所有命令都将串行化顺序执行。在事务执行期间,redis不会再为其他的客户端提供服务,从而保证事务中的所有命令都被原子化执行。使用...原创 2020-03-20 15:04:22 · 136 阅读 · 0 评论 -
Redis基础5 Redis的通用命令key
查看所有key查看符合格式的所有key删除key查看key是否存在重命名key设置key过期时间查看key所剩的时间,没有设置返回-1查看key的类型...原创 2020-03-20 15:01:20 · 100 阅读 · 0 评论 -
Redis基础4 Redis的数据结构
1 字符串数值操作 get set delGetset 先获取再设置数值value的增减incr decr incrby decrby如果key不存在,设置初值为0再加减1累加的value值如果是字符串,抛异常incrby decrby 累加/累减指定的值拼凑字符串append 在原value基础上拼接字...原创 2020-03-20 14:49:05 · 214 阅读 · 0 评论 -
Redis基础3 Jedis的入门
Redis官网连接会失败,因为linux没有开放6379的端口设置linux防火墙原创 2020-03-20 14:43:33 · 90 阅读 · 0 评论 -
Redis基础2 Redis的安装和使用
Redis是C语言写的,需要下载源码后再编译先安装gcc编译使用FileZilla将redis源码上传到linux中解压源码编译redis安装redis将源码中redis的配置文件拷贝到安装目录下启动redis修改配置文件,将redis启动方式修改为后端启动启动...原创 2020-03-20 14:40:03 · 158 阅读 · 0 评论 -
Redis基础1 NoSQL和Redis简介
1 NoSQL概述什么是NoSQL?NoSQL = Not Only SQL非关系型的数据库为什么需要NoSQL?High performance - 高并发读写Web2.0每秒会出现上万次的读写需求,而关系型数据库应付上万次的读写sql就受不了了。Huge Storage - 海量数据的高效率存储和访问关系型数据库在对于表的记录数据极多的情况下,查询效率非...原创 2020-03-20 14:35:32 · 131 阅读 · 0 评论 -
Redis分布式锁
使用Redis实现分布式锁。import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframe...原创 2020-03-08 21:24:25 · 121 阅读 · 0 评论