![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 83
馒头太帅了
这个作者很懒,什么都没留下…
展开
-
Redis学习笔记---Redis的分布式锁框架Redisson
Redis学习笔记—Redis的分布式锁框架RedissonRedisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。Redisson在基于NIO的Netty框架上,生产环境使用分布式锁。1. Redisson分布式锁的实现原理由下图可知Redisson锁实现是由lua脚本加锁实现的watch dog小程序可以续租锁,通过锁的可重入机制,可以延长锁的时间再次加锁2. 加锁机制如果该客户端面对的是一个redis cluster集群原创 2021-07-17 20:57:45 · 347 阅读 · 0 评论 -
Redis学习笔记---Redis的事件处理机制
Redis学习笔记—Redis的事件处理机制1.Redis的事件处理机制Redis服务器是典型的事件驱动系统。MVC : java 上层调下层事件驱动: jsRedis将事件分为两大类:文件事件和时间事件。2.文件事件文件事件即Socket的读写事件,也就是IO事件。file description(文件描述符)以上说的都是客户端的连接、命令请求、数据回复、连接断开3.socket套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据。4.ReactorRed原创 2021-07-17 17:10:45 · 151 阅读 · 0 评论 -
Redis学习笔记---Redis的缓存过期和淘汰策略
Redis学习笔记—Redis的缓存过期和淘汰策略1.性能简介Redis性能高:官方数据读:110000次/s写:81000次/s长期使用,key会不断增加,Redis作为缓存使用,物理内存也会满内存与硬盘交换(swap) 虚拟内存 ,频繁IO 性能急剧下降2.maxmemory不设置的场景,作为DB使用Redis的key是固定的,不会增加Redis作为DB使用,保证数据的完整性,不能淘汰 , 可以做集群,横向扩展缓存淘汰策略:禁止驱逐 (默认)设置的场景Redis原创 2021-07-08 15:15:03 · 180 阅读 · 1 评论 -
Redis学习笔记---Redis的底层数据结构
Redis学习笔记—Redis的底层数据结构1.Redis作为Key-Value存储系统Redis使用ANSI,c语言编写,Redis中的key是字符串类型,当然也有其他类型,但是都会被转成字符串类型value的数据类型有:常用的:string字符串类型、list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类型。不常见的:bitmap位图类型、geo地理位置类型。Redis5.0新增一种:stream类型Redis中命令是忽略大小写,(set SET)原创 2021-07-05 17:15:16 · 152 阅读 · 0 评论 -
Redis学习笔记---Redis的常用数据类型
Redis学习笔记—Redis底层数据结构1.Redis作为Key-Value存储系统,数据结构如下Redis没有表的概念,Redis实例所对应的db以编号区分,db本身就是key的命名空间。比如:user:1000作为key值,表示在user这个命名空间下id为1000的元素,类似于user表的id=1000的行。Redis将所有数据类型(String,list,map(hash),set,sorted-set)封装成RedisObject类型,RedisObject会指向底层数据类型2.原创 2021-07-04 15:35:19 · 94 阅读 · 0 评论 -
Redis学习笔记---Redis的事务
Redis学习笔记—Redis的事务1. Redis事务(弱事务)和Mysql事务对比Atomicity(原子性):构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。Redis:一个队列中的命令执行或不执行Consistency(一致性):数据库在事务执行前后状态都必须是稳定的或者是一致的。Redis:集群中不能保证时时的一致性,只能是最终一致性(弱一致性)Isolation(隔离性):事务之间不会相互影响。Redis:命令是顺序执行的,在一个事务中,有可能被执原创 2021-07-04 00:59:56 · 144 阅读 · 0 评论 -
Redis学习笔记---Redis的模式订阅与退订
Redis学习笔记—Redis的模式订阅与退订1.发布订阅简介发布订阅是一种通信的模式,Redis提供了发布订阅功能,可以用于消息的传输Redis的发布订阅机制包括三个部分,publisher,subscriber和Channel发布者和订阅者都是Redis客户端,Channel则为Redis服务器端发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息2.发布订阅机制:订阅某个频道或模式:客户端(client):属性为pubsub_channels,该属性表明了该原创 2021-07-03 17:17:54 · 771 阅读 · 2 评论 -
Redis学习笔记---官方Cluster分区集群容灾解决方式
Redis学习笔记—官方Cluster分区集群容灾解决方式1.容灾(failover)也可以叫故障迁移2.容灾(failover)第一步—故障检测集群中的每个节点都会定期地(每秒)向集群中的其他节点发送PING消息如果在一定时间内(cluster-node-timeout),发送ping的节点A没有收到某节点B的pong回应,则A将B标识为pfail。A在后续发送ping时,会带上B的pfail信息, 通知给其他节点。如果B被标记为pfail的个数大于集群主节点个数的一半(N/2 + 1)时,原创 2021-02-12 23:07:49 · 625 阅读 · 0 评论 -
Redis学习笔记---Redis的分区的意义与方式,官方Cluster分区集群分片
Redis学习笔记—Redis的分区的意义与方式,官方Cluster分区集群分片1.分片简介不同节点分组服务于相互无交集的分片(sharding),Redis Cluster 不存在单独的proxy或配置服务器,所以需要将客户端路由到目标的分片。客户端路由:Redis Cluster的客户端相比单机Redis 需要具备路由语义的识别能力,且具备一定的路由缓存能力。2.Redis分片重定向方式—moved重定向moved重定向图解如下:每个节点通过通信都会共享Redis Cluster中槽原创 2021-02-12 20:58:10 · 1107 阅读 · 1 评论 -
Redis学习笔记---Redis的分区的意义与方式,官方cluster分区
Redis学习笔记—Redis的分区的意义与方式分区是将数据分布在多个Redis实例(Redis主机)上,以至于每个实例只包含一部分数据。原创 2021-02-07 19:07:53 · 113 阅读 · 0 评论 -
Redis学习笔记---Redis的哨兵模式
Redis学习笔记—Redis的哨兵模式哨兵(sentinel)是Redis的高可用性(High Availability)的解决方案:由一个或多个sentinel实例组成sentinel集群可以监视一个或多个主服务器和多个从服务器。当主服务器进入下线状态时,sentinel可以将该主服务器下的某一从服务器升级为主服务器继续提供服务,从而保证redis的高可用性。1. 部署方式Sentinel监控Redis集群每个Sentinel都要连接并监控所有的Redis,包括主机和从机2.搭建原创 2021-02-01 23:54:31 · 155 阅读 · 0 评论 -
Redis学习笔记---Redis的主从复制
Redis学习笔记—Redis的主从复制1.Redis的高可用性高可用性(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。Reids保证的是分布式理论中CAP的A,并且Redis是AP模型但是单机的Redis是无法保证高可用性的,当Redis服务器宕机后,即使在有持久化的机制下也无法保证不丢失数据,所以我们采用Redis多机和集群的方式来保证Redis的高可用性。单进程+单线程 + 多机 (集群)2.Redis主从复制介绍原创 2021-01-31 22:15:45 · 760 阅读 · 0 评论 -
Redis学习笔记---Redis的持久化机制简介
Redis学习笔记—Redis的持久化机制1.为什么要持久化Redis是内存数据库,宕机后数据会消失。Redis重启后快速恢复数据,要提供持久化机制Redis持久化是为了快速的恢复数据而不是为了存储数据Redis有两种持久化方式:RDB和AOF注意:Redis持久化不保证数据的完整性。当Redis用作DB时,DB数据要完整,所以一定要有一个完整的数据源(文件、mysql)在系统启动时,从这个完整的数据源中将数据load到Redis中数据量较小,不易改变,比如:字典库(xml、Tabl原创 2021-01-25 23:12:57 · 96 阅读 · 0 评论 -
Redis学习笔记---缓存介绍
Redis学习笔记—缓存介绍1.缓存的使用场景DB缓存,减轻DB服务器压力一般情况下数据存在数据库中,应用程序直接操作数据库。当访问量上万,数据库压力增大,可以采取的方案有:读写分离分库分表当访问量达到10万、百万,需要引入缓存。将已经访问过的内容或数据存储起来,当再次访问时先找缓存,缓存命中返回数据。不命中再找数据库,并回填缓存。提高系统响应数据库的数据是存在文件里,也就是硬盘。与内存做交换(swap),在大量瞬间访问时(高并发)MySQL单机会因为频繁IO而造成无法响应。原创 2021-01-22 00:30:09 · 255 阅读 · 0 评论 -
Redis---B站学习---redis的穿透和雪崩
Redis—B站学习—redis的穿透和雪崩(属于服务的高可用问题)1.Redis缓存的使用极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。2.查询过程出现的问题user1在缓存中可以查到user2在缓存和MySQL中都查不到,所以就会一直查询MySQL,这时候MySQL就会受到大量的攻击,这时候就容易崩溃,造成穿透3.缓存穿透(原创 2020-07-14 01:16:01 · 87 阅读 · 0 评论 -
Redis---B站学习---redis的jedis
Redis—B站学习—Redis的java连接开发工具jedis1.什么是JedisRedis官方推荐的java连接开发工具jedis,使用java操作Redis的中间件创建一个Jedis的工程,然后再pom文件中导入对应的依赖jedis的jar包,fastjson的jar包,fastjson是用来村塾转换数据的 <!--导入jedis的包--> <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->原创 2020-07-14 00:24:13 · 72 阅读 · 0 评论 -
Redis---B站学习---redis的主从复制
Redis—B站学习—redis的主从复制1.Redis的主从复制是什么行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主2.Redis的主从复制能做什么读写分离容灾恢复3.Redis的主从复制怎么使用配从(库)不配主(库)从库配置:slaveof 主库IP 主库端口每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件info replication原创 2020-07-13 17:31:27 · 99 阅读 · 0 评论 -
Redis---B站学习---redis的发布订阅
Redis—B站学习—redis的发布订阅(作为消息中间件)1.Redis的发布订阅是什么进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。订阅/发布消息图(channel:通道,subscribe:订阅,client:客户端,publish:出版,message:消息)2.Redis的发布订阅的命令3.Redis的发布订阅的案例先订阅后发布后才能收到消息,可以一次性订阅多个,SUBSCRIBE c1 c2 c32 消息发布,PUBLISH c2 he原创 2020-07-13 00:44:40 · 89 阅读 · 0 评论 -
Redis---B站学习---redis事务
Redis—B站学习—redis事务1.什么是redis的事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞2.Redis事务能干嘛一个队列中,一次性、顺序性、排他性的执行一系列命令,根据CAP理论,强一致性要求很高3.Redis事务怎么用使用MULTI命令输入Redis事务。该命令始终以答复OK(但不见得是真的ok)。此时,用户可以发出多个命令。Redis不会执行这些命令,而是将它们排队。一旦调用EXEC,将执原创 2020-07-12 23:34:44 · 72 阅读 · 0 评论 -
Redis---B站学习---redis持久化之AOF
Redis—B站学习—redis持久化之AOF1.什么是AOF以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据。换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作2.保存文件形式Aof保存的是appendonly.aof文件3.配置位置(在配置文件中)配置文件内容appendonly:配置aof持久化开关appendfilena原创 2020-07-12 01:59:17 · 91 阅读 · 0 评论 -
Redis---B站学习---redis持久化之RDB
Redis—B站学习—redis持久化RDB(Redis DataBase):目前本人理解是Redis默认持久化配置是开启RDB的1.redis持久化之RDB是什么在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需原创 2020-07-11 17:23:16 · 128 阅读 · 0 评论 -
Redis---B站学习---redis解析配置文件
Redis—B站学习—redis解析配置文件原创 2020-07-09 23:43:29 · 92 阅读 · 0 评论 -
Redis---B站学习---redis数据类型List
Redis—B站学习—redis数据类型List一、List是单值多Value二、案例lpush:将一个或多个值 value 插入到列表 key 的表头,返回值是:执行 LPUSH 命令后,列表的长度。# 加入单个元素redis> LPUSH languages python(integer) 1# 加入重复元素redis> LPUSH languages python(integer) 2redis> LRANGE languages 0 -1 #原创 2020-07-09 01:21:44 · 81 阅读 · 0 评论 -
Redis---B站学习---redis数据类型String
Redis—B站学习—redis数据类型StringRedis字符串(String)单值单value常用set:get:del:删除给定的一个或多个 key 。不存在的 key 会被忽略。返回被删除key的个数# 删除单个 keyredis> SET name huangzOKredis> DEL name(integer) 1# 删除一个不存在的 keyredis> EXISTS phone(integer) 0redis> DEL p原创 2020-07-08 22:55:52 · 80 阅读 · 0 评论 -
Redis---B站学习---redis数据类型和key关键字
Redis—B站学习—redis数据类型和key关键字Redis的五大数据类型string(字符串)String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512Mhash(哈希,类似java里的Map)原创 2020-07-08 22:55:20 · 217 阅读 · 0 评论 -
Redis---B站学习---redis入门简介
Redis—B站学习—redis入门简介一、Redis是什么Redis:REmote DIctionary Server(远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器Redis 与其他 key - value 缓存产品有以下三个特点:1. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可原创 2020-07-07 00:31:16 · 407 阅读 · 1 评论 -
Redis---B站学习---redis分布式数据库CAP原理
Redis—B站学习—redis分布式数据库CAP原理在分布式数据库中CAP原理CAP+BASE传统的ACID分别是什么A (Atomicity) 原子性C (Consistency) 一致性I (Isolation) 独立性D (Durability) 持久性CAP:只能三选二C:Consistency(强一致性):数据库没的商量,提交上来的数据是什么就是什么A:Availability(可用性)P:Partition tolerance(分区容错性)CAP的3进2C转载 2020-07-06 00:48:29 · 150 阅读 · 0 评论 -
Redis---B站学习---redis_nosql数据库的四大分类
Redis—B站学习—redis_nosql数据库的四大分类NoSQL数据库的四大分类KV键值:典型介绍新浪:BerkeleyDB+redis美团:redis+tair阿里、百度:memcache+redis文档型数据库(bson格式比较多):典型介绍CouchDBMongoDBMongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数原创 2020-07-06 00:02:09 · 135 阅读 · 0 评论 -
Redis---B站学习---redis_nosql数据模型简介
Redis—B站学习—redis_nosql数据模型简介NoSQL数据模型简介以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库传统的关系型数据库你如何设计?ER图(实体关系模型图):(1:1/1:N/N:N,主外键等常见)nosql你如何设计什么是BSONBSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象给学生用BSon画出构建的数据模型两者对比,问题和难原创 2020-07-05 23:42:08 · 122 阅读 · 0 评论 -
Redis---B站学习---redis-nosql入门概述
Redis—B站学习—redis-nosql入门概述原创 2020-07-02 17:58:02 · 141 阅读 · 0 评论 -
B站---redis持久化学习
Redis持久化学习Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化文件即可实 现数据恢复。rdb:Redis Database—在指定的时间间隔内将数据写入磁盘,行话:snapshot快照,它恢复时是将快照文件直接读到内存中fork:fork的作用是复制一个与当前进程一样的进程。(复制的和原进程一模一样,但却是一个新的...原创 2020-02-28 13:35:28 · 63 阅读 · 0 评论 -
redis发布订阅,主从复制
Redis 发布订阅什么是Redis发布订阅:进程间的一种消息互通模式,发送者(pub)发送消息,订阅者(sub)接收消息Redis 主从复制(master/slave)是什么:也就是我们说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,master以写为主,slave以读为主。可以做:读写分离,容灾恢复怎么用:1.配从(库)不配主(库) ...原创 2020-02-28 13:35:51 · 196 阅读 · 0 评论 -
Redis整理一下
Redis自己的整理简单说一下Redis = Remote Dictionary Server—远程字典服务器使用c语言 编写的,遵守BSD协议,是一个高性能的KV的分布式数据库,基于内存运行,也被称为数据结构服务器ps -ef|grep redis—查看redisps aux | grep redis 查看redis服务器进程sudo kill -9 pid 杀死redis服务...原创 2020-02-28 13:34:52 · 69 阅读 · 0 评论