rdb

redis简介以及集成环境塔建

倖福魔咒の 提交于 2020-03-01 03:47:01
redis简介: 首先redis是一款高速的内存缓存数据库,他的数据是存储在内存上,而mysql的数据是存储在硬盘上面,可想而知在数据的读写方面redis比mysql快了一个量级, redis是非关系型数据库,他的数据模式为key-value模式,支持string,list,hash,set,sorted set redis可以持久化数据,这是redis一个非常大的优势,我们知道memcahe也是一款内存缓存数据库,他的读写性能可以媲美redis,但是他不能持久化,服务器重启后数据会丢失,而redis的持久化策略保证了数据的安全,redis支持数据文件(rdb)持久化和更新日志(aof)持久化两种策略 redis在Windows(64位)下的环境塔建 下载地址: https://github.com/microsoftarchive/redis/releases 找好一个版本之后点击下载,这里我选择的是最新的版本: Redis-x64-3.0.504.zip 下载好后直接解压即可 其中解压文件里面的redis-server.exe就是redis服务,双击打开就是启动redis服务,redis-cli.exe 就是redis客户端,双击点击就可以运行, window下redis安装到此已经ok!. 接下来安装下redis可视化管理工具! 来源: oschina 链接: https:/

进阶的Redis之数据持久化RDB与AOF

老子叫甜甜 提交于 2020-02-28 16:48:05
大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数据就会丢失不见了。这样的数据库并不是一个可靠的数据库。 所以数据的持久化是内存型数据库的重中之重。它不仅提供数据保存硬盘的功能,还可以借此用硬盘容量扩展数据存储空间,使得Redis的可以存储超过机器本身内存大小的数据。 Redis对于数据持久化提供了两种持久化的方案,RDB与AOF。它们的原理和使用场景都大不相同,下面我们来详细地了解下。 RDB——数据快照(Snapshot) RDB,提供一个某个时间点的数据的Snapshot,保存在RDB文件中。它可以通过 SAVE/BGSAVE 命令手动执行,把数据Snapshot写到RDB文件,也可以通过配置,定时执行。 Redis也可以通过加载RDB文件,把数据从磁盘加载读取到Redis中。 RDB文件创建 连上Redis,设值一些值,然后执行 SAVE 命令。 然后可以查看下redis.conf的持久化工作目录。进入目录可以看到保存了一个dump.rdb文件。该文件是一个二进制文件,无法直接正常打开。 至于 SAVE/BGSAVE 的区别,就是前置是阻塞执行,此时服务不会接受请求,后者是Fork一个子进程出来

Redis 数据持久化

依然范特西╮ 提交于 2020-02-28 11:12:34
大纲 为什么要做数据持久化 数据持久化方式(RDB 和 AOF 介绍) RDB 的优缺点 AOF 的优缺点 开篇 本文着重讲得是 redis 数据持久化,不会去介绍 redis 是什么,它的特性是什么,以及安装方式,使用场景等等。 正文 一. 为什么要做数据持久化 或者我们还可以这样问,什么情况下需要做数据持久化? 这需要结合你的业务场景去选择,当然大部分情况下,还是建议大家去做 redis 的数据持久化。 回到原题,我们做数据持久化的目的是用于故障恢复。 举个例子: 我最近接手到的 xx 系统,它的数据就直接存在 redis 中,或者说我们就是把 redis 当作一个持久化数据库在用,这样做的原因就先不说了。根据这样一个应用场景,假设我们不做数据持久化,万一 redis 挂掉,我们的数据就全没了,如何跟客户去交代??? ~~~~~ 只能跑路~~~ 那么问题又来了, redis 是怎么做数据持久化的? 如果我们做了数据持久化,就能保证一条数据都不会丢了吗? 请接着往下看 ⬇️️️ 二. redis 数据持久化方式 redis 提供了两种不同的持久化方式: RDB 和 AOF。 RDB : 定期保存一份 redis 快照数据到 rdb 文件当中 AOF : 把每一个写操作都记录在一个日志文件里 说的通俗一点就是: RDB 就是将 redis 的数据保存到一份 rdb 文件中

redis 主从 + 哨兵模式集群部署(3 台机器部署方案)

会有一股神秘感。 提交于 2020-02-28 07:30:13
前言 本文只讲如何部署,然后会贴出具体配置,以及如何验证是否部署成功( redis 版本采用 4.0.6 )。既不会介绍 redis 如何安装( 本人采用源码安装方式 ),也不会涉及主从复制,哨兵模式具体原理及工作机制等内容。 后续会再补充 ~ 配置 关于 redis 的配置文件 redis.conf 的配置项,请参考 Redis配置文件详解 , 下面贴出的配置只会粗略讲解。 机器分配 名称 机器 1 机器2 机器2 host 10.211.55.8 10.211.55.9 10.211.55.11 端口 6379 6379 6379 角色1 master slave 01 slave 02 角色2 sentinel 01 sentinel 02 sentinel 03 提示 看到这里,请先提前关闭三台机器的防火墙。防火墙不关闭,会出现 master 的数据不会同步到 slave 节点的情况 -- 关闭防火墙! -- 关闭防火墙! -- 关闭防火墙! 机器1 配置(master)(10.211.55.8) redis.conf # 如果为 yes 只能通过(127.0.0.1)访问 protected-mode no # 端口 port 6379 # 用守护线程的方式启动 daemonize yes # pid 文件 pidfile ./redis.pid # 日志 logfile

Redis设计与实现-混合持久化

微笑、不失礼 提交于 2020-02-28 02:03:41
前面介绍了RDB和AOF两种持久化技术,它们都有各自的优缺点,比如RDB丢失数据比较多,而AOF重写耗时,且恢复数据速度相比RDB慢很多,当Redis进化到4.0的时候,提供了混合持久化RDB+AOF。 持久化 该种持久化机制是将两种方式持久化的数据存放到同一个文件当中,图解 Redis进行RDB操作时,用缓冲区记录下RDB期间的所有写命令以及其他会影响数据库和客户端状态的命令 比如 : set hset zadd sadd SCRIPT LOAD 会修改服务器状态 PUBSUB 发布的消息最终会影响客户端状态 当RDB完成之后,再将缓冲区AOF日志写到文件中 载入 先从RDB部分恢复绝大部分数据,再执行AOF部分的日志,最终数据恢复完成 当然该种机制依然可能丢失1秒的数据 Redis设计与实现-RDB持久化 Redis设计与实现-AOF持久化 来源: oschina 链接: https://my.oschina.net/u/3049601/blog/3158904

Redis的两种持久化方式

£可爱£侵袭症+ 提交于 2020-02-27 12:26:34
RDB 我们所谓的RDB持久化就是指的讲当前进程的数据生成快照存入到磁盘中,触发RDB机制又分为 手动触发 与 自动触发 AOF AOF持久化是以独立的日志记录每次写命令,重启Redis的时候再重新执行AOF文件中命令以达到恢复数据,所以AOF主要就是解决持久化的实时性。 来源: oschina 链接: https://my.oschina.net/u/4167465/blog/3175380

面试

两盒软妹~` 提交于 2020-02-27 05:08:45
Redis有哪些数据结构? 字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。 使用过Redis分布式锁么,它是什么回事? 先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。set指令有非常复杂的参数,这个应该是可以同时把setnx和expire合成一条指令来用的。 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来? 使用keys指令可以扫出指定模式的key列表。redis的单线程的。keys指令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕,服务才能恢复。 Redis如何做持久化的? bgsave做镜像全量持久化,aof做增量持久化。因为bgsave会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据,所以需要aof来配合使用。在redis实例重启时,会使用bgsave持久化文件重新构建内存,再使用aof重放近期的操作指令来实现完整恢复重启之前的状态。 bgsave的原理是什么? fork和cow。fork是指redis通过创建子进程来进行bgsave操作,cow指的是copyonwrite,子进程创建后,父子进程共享数据段,父进程继续提供读写服务,写脏的页面数据会逐渐和子进程分离开来。 是否使用过Redis集群,集群的原理是什么?

redis技术知识大全

瘦欲@ 提交于 2020-02-27 03:33:21
1.前言 本文主要介绍redis的安装、基础知识、内存淘汰策略、缓存持久化、集群搭建和使用等知识点 2.redis的安装 1.安装gcc: redis是c语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。 [root @aliyun package]# yum install gcc-c++ 2.安装redis. 下载redis压缩文件,上传至centos7,并解压 [root @aliyun package]# tar -zxvf redis-5.0.0.tar.gz 3.进入到解压的文件夹进行编译(需要依赖我们第一步安装的gcc环境,不然会报错) 进入后,输入make 进行编译 [root @aliyun package]# make 编译完成后我们进行指定位置安装: [root @aliyun package]# make PREFIX=/usr/local/redis install (这里安装,我们指定的安装目录是:/usr/local/redis。会看到我们目录下会生成一个redis文件夹) 4,进入到之前解压的文件夹里,找到redis.conf这个文件,复制到安装的目录下: [root @aliyun package]# cp redis.conf /usr/local/redis 到这里,我们的redis安装结束,可以正常使用。

Redis的安装与配置

这一生的挚爱 提交于 2020-02-26 08:18:41
今天和大家唠唠大名鼎鼎的 Redis 。Redis其实是一款用C语言编写的、高性能的Key-Value数据库。由于她具有极佳的读写性能,往往会被当作缓存组件来使用。Redis的作者是来自西西里岛的一个帅小伙,全名:Salvatore Sanfilippo(网名:antirez),目前供职于 Pivotal 公司。这一说到Pivotal可又牵出个大瓜来,朱哥忍不住要说到说到了!小伙伴们可能对Pivotal不太熟悉,那是主要是因为人家在咱国内比较低调。而在大洋彼岸,Pivotal的故事可是相当传奇啊!由于剧情过于狗血,先来看看朱哥梳理的时间脉络: 1979年,EMC公司立于美国麻州Hopkinton市; 1984年,19岁的迈克尔.戴尔先生以1000美元资金创立了戴尔计算机公司; 1989年,Rob Mee 创立的咨询公司 Pivotal Labs; 1998年,VMware公司成立于美国加利福尼亚州帕洛阿尔托市; 2003年,Rod Johnson和同伴创建了Spring 开源项目; 2004年,Rod Johnson和同伴创建interface21公司以支持Spring开发; 2004年,EMC以 6.35亿美元收购VMware; 2007年,interface21公司更名为 SpringSource公司; 2009年,VMware以4.2亿美元收购SpringSource;