Redis
文章平均质量分 60
Redis学习
lhj_loveFang_1105
稳住不慌
展开
-
Redis内存淘汰策略
Redis内存我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。通过在Redis安装目录下面的redis.conf配置文件中进行设置。如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存Redis内存淘汰当Redis内存用完的时候,再对其中添加数据不就没有内存了嘛?Redis提供了几种策略来处理这种情况:noeviction原创 2021-03-22 18:55:39 · 121 阅读 · 0 评论 -
Redis知识扩充
RDB持久化根据执行持久化的对象不同又分为SAVA和BGSAVA两种方式SAVA即让Redis服务进程来执行持久化,所以直到RDB持久化结束之前,Redis服务进程会一直处于阻塞状态,无法处理任何命令。BGSAVE则会通过fork()来创建一个子进程,然后让子进程来接管RDB持久化,而父进程继续处理命令请求为了保证文件的安全以及容量更小,RDB持续化所生成的RDB文件是一个经过压缩的二进制文件,通过这个文件就可以还原数据库的状态。由于命令太多时,时间消耗会更大,AOF引入了重写的机制,即..原创 2021-03-22 18:21:44 · 130 阅读 · 0 评论 -
Redis分布式事务和事务锁
分布式事务之前我们的一系列操作都是在一个应用的一个数据库中完成的,保证了事务ACID特性,在分布式中就会涉及跨应用,跨库的操作,就涉及到分布式事务。分布式事务锁原理分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性。核心思想在被保护的redis节点加一把锁, 让这把锁和被保护的redis节点建立直接映射在访问这个redis之前都去看看这把锁在不在如果不存在锁,说原创 2021-03-22 18:18:41 · 483 阅读 · 0 评论 -
Redis的集群
概述集群是Redis在3.0版本正式推出的分布式解决方案,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以得到有效解决,并且集群模式有效解决了哨兵模式中哨兵的消耗和哨兵工作的低效率性。集群服务是Redis多机运行的最完美的终极方案, 其完全抛弃了主从同步和哨兵模式, 真正实现了多主多从。分布式存储分布式数据库首先要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每个节点负责整体数据的一个子集。假设有10万个用户在该网站登录, 如果要存储原创 2021-03-22 17:35:13 · 239 阅读 · 0 评论 -
Redis保证了ACID原则
原子性Redis中的事务,如果出现命令错误比如指令不存在,那么整个事务中的命令都不会被执行,但如果是语法性错误,那么除了错误指令抛出异常,其他指令正常执行。此外,Redis单条指令也是保证原子性的,比如添加多个元素,其中一个出现错误,那么都不会添加成功。一致性入队错误: 如果一个事务在入队命令的过程中,出现了命令不存在,或者命令的格式不正确等情况,那么Redis将拒绝执行这个事务执行错误: 即使在事务的执行过程中发生了错误,服务器也不会中断事务的执行,它会继续执行事务中余下的其他命令,并且已执行原创 2021-03-21 15:22:26 · 264 阅读 · 0 评论 -
Redis中的跳跃表详解
简介跳跃表(skiplist)是一种随机化的数据结构,是一种可以与平衡树媲美的层次化链表结构——查找、删除、添加等操作都可以在对数期望时间下完成。Redis 的五种基本结构中,有一个叫做 有序列表 zset 的数据结构,它类似于 Java 中的 SortedSet 和 HashMap 的结合体,一方面它是一个 set 保证了内部 value 的唯一性,另一方面又可以给每个 value 赋予一个排序的权重值 score,来达到 排序 的目的。它的内部实现就依赖了一种叫做 「跳跃列表」 的数据结构。本原创 2021-03-21 14:50:35 · 521 阅读 · 0 评论 -
Redis思维导图
原创 2021-03-11 12:34:13 · 145 阅读 · 0 评论 -
Redis发布订阅,主从复制,哨兵模式,缓存穿透,缓存击穿和雪崩
发布订阅Redis发布订阅(pub/sub)是一种消息通信模式∶发送者(pub)发送消息,订阅者(sub)接收消息。微信、微博、关注系统!Redis客户端可以订阅任意数量的频道。主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(masterleader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。主从复制,读写分离!80%的情况下都是在进行读操作!减缓服务器的压原创 2021-02-22 17:56:04 · 203 阅读 · 2 评论 -
Redis持久化之rdb,aof
概述Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能!RDB ( Redis DataBase )redis默认是rdb在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建 ( fork )一个子进程来进行持久化,会先将数据写入到一个临时文件(dump.rdb)中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文原创 2021-02-20 17:22:08 · 143 阅读 · 0 评论 -
关于Jedis
概述我们要使用Java来操作Redis什么是jedis是Redis官方推荐的java连接开发工具!使用Java 操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!测试导入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId>原创 2021-02-20 16:05:23 · 121 阅读 · 0 评论 -
Redis的事务
概述Redis事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程的中,会按照顺序执行!一次性、顺序性、排他性!执行一些列的命令!Redis单条命令式保存原子性的,但是事务不保证原子性!Redis事务没有没有隔离级别的概念!模型:------ 队列set set set执行------所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行!(Exec)redis的事务开启事务( multi )命令入队(…)执行事务( exec )取消事务异原创 2021-02-19 16:49:53 · 94 阅读 · 0 评论 -
Redis三种特殊数据类型
geospatial地理位置添加地理位置,参数(纬度,经度,名称)获取指定城市的经度和纬度获取两个地方之间的距离指定经纬度为中心,找出给定半径内的城市指定城市为中心查找指定半径内存在的城市geo底层是zsetHyperloglog无重复元素测试使用bitmaps位存储统计用户信息,活跃,不活跃!登录、未登录!打卡,365打卡!两个状态的,都可以使用Bitmaps !Bitmaps位图,数据结构!都是操作二进制位来进行记录,就只有0和1两个状态!原创 2021-02-17 18:20:32 · 109 阅读 · 0 评论 -
Redis五大基本数据类型
前言Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ。它支持多种类型的数据结构,如字符串 ( strings ),散列 ( hashes ),列表( lists ),集合( sets ),有序集合( sorted sets )与范围查询,bitmaps,hyperloglogs和地理空间( geospatial ) 索引半径查询。Redis内置了复制( replication ),LUA脚本(Luascripting ),LRU驱动事件( LRU ev原创 2021-02-17 16:02:28 · 144 阅读 · 0 评论 -
Redis基础知识
Redis默认有16个数据库默认使用第0个数据库可以使用select进行切换查看数据库大小清空数据库flushall会把全部数据库清空Redis是单线程的Redis是很快的,Redis是基于内存操作的。为什么单线程还可以这么快?首先多线程并不一定会比单线程快,核心是: redis 是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换︰耗时的操作!! ! ),对于内存系统来说,如果没有上下文切换效率就是最高的。...原创 2021-02-15 20:42:52 · 117 阅读 · 0 评论 -
Redis安装~~
什么是RedisRedis ( Remote Dictionary Server ),即远程字典服务!是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源!是当下最热门的NoSQL技术之一!也被人们称之为结构化数据库!Redis能干嘛1、内存存储、持久化,内存中是断电即失、所以说原创 2021-02-15 20:09:40 · 136 阅读 · 0 评论