数据持久化

Redis持久化面试题

时间秒杀一切 提交于 2020-01-14 05:31:11
Redis持久化面试题 1.redis持久化机制是什么? 2.RDB原理是什么? 3.RDB文件在哪? 4.什么时候触发rdb持久化机制? 手动触发: 自动触发: 5.如何手动会发redis数据? 6.如何获取redis安装目录? 7.如何停止RDB持久化? 8.RDB持久化机制的优缺点? 优点: 缺点: 9.RDB执行流程是什么? 10.AOF原理是什么? 11.如何开启AOF持久化? 12.AOF的重写机制是怎样的? 13.AOF的同步策略是怎样的? 14.AOF的执行流程是什么? 15.AOF重写流程是什么? 16.如果redis在append数据到AOF文件时,机器宕机了怎么修复? 17.AOF重写的整个过程有哪几部分会阻塞进程? 18.如果aof和rdb同时存在,听谁的? 19.总结 1.redis持久化机制是什么? redis有两种持久化机制:RDB(默认)、AOF 2.RDB原理是什么? 原理是redis会单独创建(fork)一个与当前进程一模一样的子进程来进行持久化,这个子进程的数据和原进程一模一样,会先将数据写到一个临时文件中,持久化结束后,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何io操作,确保极高的性能。 3.RDB文件在哪? redis.conf配置文件的dbfilename指定了rdb文件的名字(默认dump.rdb)

redis持久化问题处理

纵然是瞬间 提交于 2020-01-14 03:49:28
这个是最近在开发的过程中遇到的问题,因为需要频繁使用redis作为中间查询操作,突然故障了,服务中止,然后抛出异常 2020-01-09 09:34:17.848 ERROR 25703 --- [ XNIO-2 task-83] o.z.p.spring.web.advice.AdviceTrait : Internal Server Error org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error. at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter

Redis入门

大城市里の小女人 提交于 2020-01-14 02:17:16
redis 是什么? 是完全开源免费的,用c语言编写的,是一个单线程,高性能的(key/value)内存数据库,基于内存运行并支持持久化的nosql数据库 能干嘛? 主要是用来做缓存,但不仅仅只能做缓存,比如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存。 去哪下? 官网,也可以通过Linux yum直接下载安装 怎么玩? 1.安装 2.redis数据类型(api操作) 3.redis配置文件解析 4.redis的持久化 5.redis的事务 6.redis的发布订阅 7.java客户端操作(jedis) redis的安装 1.解压 2.make 如果make报错的话 大家就可以看一下是不是报没有gcc的错 如果是报没有gcc的错,那就要先安装一个gcc yum install gcc-c++ 安装好gcc之后最好执行一下make distclean 因为前面make的时候它执行了一些东西 要先把他清掉 3.make install 查看redis默认安装位置 /usr/local/bin redis设置外网访问 1.注释bind并且把protected-mode no 2.使用bind 3.设置密码 protected-mode它启用的条件有两个,第一是没有使用bind,第二是没有设置访问密码。 redis数据类型及api操作(http:/

SQL Server计算列

心不动则不痛 提交于 2020-01-13 20:11:26
计算列 由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。   例如,在 AdventureWorks 示例数据库中, Sales.SalesOrderHeader 表的 TotalDue 列具有以下定义: TotalDue AS Subtotal + TaxAmt + Freight 。   除非另行指定,否则计算列是未实际存储在表中的虚拟列。每当在查询中引用计算列时,都将重新计算它们的值。数据库引擎在 CREATE TABLE 和 ALTER TABLE 语句中使用 PERSISTED 关键字来将计算列实际存储在表中。如果在计算列的计算更改时涉及任何列,将更新计算列的值。通过将计算列标记为 PERSISTED,可以对具有确定性但不精确的计算列创建索引。另外,如果计算列引用 CLR 函数,则数据库引擎不能验证该函数是否真正具有确定性。在这种情况下,计算列必须为 PERSISTED,以便可对其创建索引。   计算列可用于选择列表、 WHERE 子句、 ORDER BY 子句或任何可使用正则表达式的其他位置,但下列情况除外:   用作 CHECK、 FOREIGN KEY 或 NOT NULL 约束的计算列必须标记为 PERSISTED。如果计算列的值由具有确定性的表达式定义

Redis数据持久化的简单介绍

蹲街弑〆低调 提交于 2020-01-13 02:34:34
Redis的数据持久化分为 RDB 和 AOF 。 快照持久化(RDB)Redis的默认持久化方式。 RDB持久化是指 在指定的时间间隔内 将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。 与快照持久化相比,AOF持久化的 实时性 更好。 开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件,解决了数据持久化的实时性( 记录除了查询以外的所有变更数据库状态的指令 ),当服务器重启的时候会重新执行这些命令来恢复原始的数据。 注意,AOF开启之后,之前的数据都会丢失,所以要在一开始使用时就要配置好。 AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。 RDB优势 1). 整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。 比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。 2). 对于灾难恢复而言,RDB是非常不错的选择。因为可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。 3). 性能最大化。对于Redis的服务进程而言

0109 redis数据库的配置与使用

痞子三分冷 提交于 2020-01-12 21:54:15
目录 昨日回顾 Redis 1. Redis简介 1.1 为什么要用 redis /为什么要用缓存 1.2 为什么要用 redis 而不用 map/guava 做缓存? 1.3 redis 和 memcached 的区别 2.Redis内存数据库 2.1 redis介绍 2.2 Redis操作 2.3 Redis数据类型 2.4 python使用redis 3.接口缓存 模式 轮播图接口缓存 4.celery异步服务框架 昨日回顾 1、接口编辑 1)设计数据库 2)分析业务逻辑 3)配置路由层 4)完成视图(简单逻辑,直接在视图中完成,复杂逻辑,交给序列化组件完成) 5)序列化组件(序列化与反序列化字段,是否要(重|自)定义字段,设置局部全局钩子,考虑是否重写create和update方法) 2、django缓存 from django.core.cache import cache (memcache|redis) cache.set(k, v, e) cache.get(k) 3、vue-cookies $cookies = vue-cookies $cookies.set(k, v, e) $cookies.get(k) $cookies.remove(k) -- 前台数据库:cookie、sessionStorage、localStorage 4、前后台交互 $axios(

Redis面试题(含答案):哨兵+复制+事务+集群+持久化等

二次信任 提交于 2020-01-12 04:48:21
Redis主要有哪些功能? 哨兵(Sentinel)和复制(Replication) Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 Sentinel可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能,Replication则是负责让一个Redis服务器可以配备多个备份的服务器。 Redis也是利用这两个功能来保证Redis的高可用的 事务 很多情况下我们需要一次执行不止一个命令,而且需要其同时成功或者失败。redis对事务的支持也是源自于这部分需求,即支持一次性按顺序执行多个命令的能力,并保证其原子性。 LUA脚本 在事务的基础上,如果我们需要在服务端一次性的执行更复杂的操作(包含一些逻辑判断),则lua就可以排上用场了 持久化 redis的持久化指的是redis会把内存的中的数据写入到硬盘中,在redis重新启动的时候加载这些数据,从而最大限度的降低缓存丢失带来的影响。 集群(Cluster) 单台服务器资源的总是有上限的,CPU资源和IO资源我们可以通过主从复制,进行读写分离,把一部分CPU和IO的压力转移到从服务器上,这也有点类似mysql数据库的主从同步。 在Redis官方的分布式方案出来之前,有twemproxy和codis两种方案,这两个方案总体上来说都是依赖proxy来进行分布式的

redis 之RDB和AOF

坚强是说给别人听的谎言 提交于 2020-01-11 16:07:58
1、RDB和AOF两种持久化机制的介绍 RDB持久化机制,对redis中的数据执行周期性的持久化 AOF机制对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集 如果我们想要redis仅仅作为纯内存的缓存来用,那么可以禁止RDB和AOF所有的持久化机制 通过RDB或AOF,都可以将redis内存中的数据给持久化到磁盘上面来,然后可以将这些数据备份到别的地方去,比如说阿里云,云服务, 如果redis挂了,服务器上的内存和磁盘上的数据都丢了,可以从云服务上拷贝回来之前的数据,放到指定的目录中,然后重新启动redis,redis就会自动根据持久化数据文件中的数据,去恢复内存中的数据,继续对外提供服务,这样增加了高可用 如果同时使用RDB和AOF两种持久化机制,那么在redis重启的时候,会使用AOF来重新构建数据,因为AOF中的数据更加完整 2、RDB持久化机制的优点 (1)RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数据,这种多个数据文件的方式,非常适合做冷备,可以将这种完整的数据文件发送到一些远程的安全存储上去,比如说Amazon的S3云服务上去,在国内可以是阿里云的ODPS分布式存储上,以预定好的备份策略来定期备份redis中的数据 (2

关于Docker的挂载

六眼飞鱼酱① 提交于 2020-01-11 06:14:51
 底层原理不懂就上手,上手出了问题就懵逼,最近在对接阿里云时遇到Docker存储驱动的神坑,爬了几天爬不出来,最后发现是节点中Docker存储驱动的问题,由此引发此次学习,避免类似问题再次懵逼。 文章目录 1. Volumes(最推荐的挂载方式) 2. Bind mounts 3. tmpfs mounts 4. named pipes 5.关于语法 5.1 -v/--volume 5.2 --mount  关于镜像images,核心首先必须明确一点, 镜像都是只读的 ,如果需要进行写操作,必须在该镜像上创建一个新的镜像层(我们所有的写操作其实都是在一个可写的镜像层上操作的)。同时镜像也是共享的,那些依赖于同一个 image 的多个容器,并不会将单独复制需要的镜像到自己的容器中进行启动,那样会浪费巨大的空间,实际节点上只会有一个镜像,多个容器是共享这一个镜像的。存储驱动可以将容器中的数据进行持久化同时避免性能问题。存储驱动允许我们在容器的可写层创建数据,这些数据在容器销毁后也就没有了,且这些文件的读写速度都比本地文件系统的性能低。  默认情况下,容器内所有创建的文件都存储在一个可写层,所以这些文件仅仅存活于容器运行时,一旦容器被销毁这些文件也会被销毁。容器的可写层和宿主机器紧密耦合,很难将可写层的文件或数据迁移到非宿主机器外的地方。要将数据写入容器的可写层必须要有一个存储驱动

redis笔记

試著忘記壹切 提交于 2020-01-11 01:10:49
redis笔记 redis 是什么? 能干嘛? 去哪下? 怎么玩? redis的安装 redis设置外网访问 redis数据类型及api操作(http://redisdoc.com/) key 1.string 2.list 3.set 4.hash 5.zset redis的持久化机制 1.RDB 是什么? 1.这个持久化文件在哪里 2.他什么时候fork子进程,或者什么时候触发rdb持久化机制 2.aof(--fix) ls -l --block-size=M 是什么? 1.这个持久化文件在哪里 2.触发机制(根据配置文件配置项) 3.aof重写机制 4.redis4.0后混合持久化机制 开启混合持久化 小总结: 1.redis提供了rdb持久化方案,为什么还要aof? 2.如果aof和rdb同时存在,听谁的? 3.rdb和aof优势劣势 性能建议(这里只针对单机版redis持久化做性能建议): redis集群专题 Redis主从复制 1.是什么 2.能干嘛 3.怎么玩 4.全量复制消耗 5.缺点 redis哨兵模式 1.是什么,能干嘛? 2.哨兵主要功能(做了哪些事) 3.架构 4.怎么玩(实战)? 1.部署主从节点 2.部署哨兵节点 哨兵节点的启动有两种方式,二者作用是完全相同的: 5.故障转移演示(哨兵的监控和自动故障转移功能) 6.客户端(jedis)访问哨兵系统