redis-cli

[转] Redis持久化之RDB&AOF

烈酒焚心 提交于 2020-05-06 09:53:48
转自: https://www.cnblogs.com/itdragon/p/7906481.html Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识 持久化 。 一、RDB 详解 RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。 1.从配置文件了解RDB 打开 redis.conf 文件,找到 SNAPSHOTTING 对应内容 1) RDB核心规则配置(重点) save <seconds> <changes> # save "" save 900 1 save 300 10 save 60 10000 解说:save <指定时间间隔> <执行指定次数更新操作>,满足条件就将内存中的数据同步到硬盘中。官方出厂配置默认是 900秒内有1个更改,300秒内有10个更改以及60秒内有10000个更改,则将内存中的数据快照写入磁盘。 若不想用RDB方案,可以把 save ""

Redis 持久化之RDB和AOF详解

陌路散爱 提交于 2020-05-06 09:53:31
一、RDB 详解 RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。 从配置文件了解RDB 打开 redis.conf 文件,找到 SNAPSHOTTING 对应内容 1 RDB核心规则配置(重点) save <seconds> <changes> # save "" save 900 1 save 300 10 save 60 10000 解释:save <指定时间间隔> <执行指定次数更新操作>,满足条件就将内存中的数据同步到硬盘中。官方出厂配置默认是 900秒内有1个更改,300秒内有10个更改以及60秒内有10000个更改,则将内存中的数据快照写入磁盘。 若不想用RDB方案,可以把 save "" 的注释打开,下面三个注释。 2 指定本地数据库文件名,一般采用默认的 dump.rdb dbfilename dump.rdb 3 指定本地数据库存放目录,一般也用默认配置 dir ./ 4 默认开启数据压缩 rdbcompression yes 解释:配置存储至本地数据库时是否压缩数据,默认为yes。Redis采用LZF压缩方式,但占用了一点CPU的时间。若关闭该选项,但会导致数据库文件变的巨大。建议开启。

Redis系列(十)--集群cluster

我们两清 提交于 2020-05-06 01:27:33
在之前学习了Master-Slave、Sentinel模式,但是在某些情况下还是无法满足系统对QPS等要求,这时候就需要Cluster,Redis3.0支持了cluster 一、为什么使用Cluster 1、并发量   官方说明Redis支持10W条命令/秒,这已经很牛逼了,但是有些业务场景需要100W条命令/秒,当然这可能是一线互联网公司的场景 2、数据量   Master-Slave模式下内存、网络流量(网卡)无法满足要求 二、数据分区   我们使用cluster,有一个很重要的原因就是数据量过大,这种时候就要考虑数据分区了 1、顺序分布 :数据倾斜 2、hash分布 :通过hash函数进行分区,hash分布有很多实现方式,常见的有一下两种    1).节点取余 :通过hash和取余,比较简单,当进行节点扩容/伸缩的时候,数据迁移率80%, 最好是进行翻倍扩容,数据迁移率50%       2).一致性hash   将数据看做一个token环,范围0~2^32, 对key进行hash计算,例如落到n1-n2之间,就会 顺时针找离自己最近的节点,最终落到n2节点 2.1).扩容:   新增节点n5,只会影响hash落到n1-n5之间的数据,之前这些数据最终落到n2节点,但是现在找到n5节点,是无法找到的,还是存在数据迁移, 如果现在有1000个节点,新增节点时,影响的范围很小1

关于redis的几件小事(十)redis cluster模式

这一生的挚爱 提交于 2020-05-06 01:26:38
redis cluster是redis提供的集群模式。 1.redis cluster的架构 ①可以有多个master node,每个master node 都可以挂载多个slave node。 ②读写分离的架构,对应每个master node来说,写就写到master node,读就从master node对应的slave node去读。 ③高可用。每个master node都有多个 slave node,如果master node挂了,redis cluster机制就会自动将某个slave node切换成 master node。 所以redis cluster是 多master + 读写分离 + 高可用 的。只要基于edis cluster去搭建集群,就可以达到搭建 replication复制+主从架构+读写分离+哨兵集群+高可用的 集群架构。 2.redis cluster和replication+sentinal ①输入数据量很少,主要是承载高并发的场景,单机就可以了。 ②replication只有一个master node节点,多个slave node节点,所有节点上面的数据是一样的,所有它可以提高读请求的吞吐量,然后可以搭建一个Sentinal集群去保证高可用,但是他无法去扩容数据的存储量。 ③redis cluster,可以有多个master

Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?

ε祈祈猫儿з 提交于 2020-05-04 19:29:22
Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。 所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给我们带来了那些新功能。 所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给我们带来了那些新功能。 Redis 新功能介绍 Redis 6 的更新日志,主要包含以下五部分的内容: Redis 6.0-RC1 版新功能介绍; Redis 6.0-RC2 版新功能介绍; Redis 6.0-RC3 版新功能介绍; Redis 6.0-RC4 版新功能介绍; Redis 6.0.0 GA 版新功能介绍。 除了以上这些版本的更新日志外,还有 6.0.1 正式版的更新日志,不过这个正式版的发布时间只比 Redis 6.0.0 GA 晚了两天,因此只修复了一些 bug,所以我们只需要看以上五个日志即可。 1.Redis 6.0-rc1 更新日志 官方更新日志如下: Redis 6 improves Redis in a

部署Redis4.x单机版及配置RDB和AOF持久化

孤街醉人 提交于 2020-05-03 21:19:35
一、环境及软件 OS   soft version CentOS 7.5 redis-4.0.12(目前是4.x最新) 二、下载及编译Redis [root@localhost ~]# wget http: // download.redis.io/releases/redis-4.0.12.tar.gz [root@localhost ~]# tar xf redis- 4.0 . 12 .tar.gz -C /usr/local/ [root@localhost ~]# cd /usr/local/ [root@localhost local]# ln -sv redis- 4.0 . 12 / redis [root@localhost local]# cd redis [root@localhost redis]#less README.md [root@localhost redis]#yum install tcl - y #安装依赖,需要 8.5及以上版本,如果yum没有可以到官网去下载源码编译安装 官方地址: https://sourceforge.net/projects/tcl/files/Tcl/ [root@localhost redis]#make [root@localhost redis]#make test [root@localhost redis

Redis-3.2.0集群配置(redis cluster)

守給你的承諾、 提交于 2020-05-03 21:09:52
目录 目录 1 1. 前言 2 2. 部署计划 2 3. 目录结构 2 4. 编译安装 3 5. 修改系统参数 3 5.1. 修改最大可打开文件数 3 5.2. TCP监听队列大小 4 5.3. OOM相关:vm.overcommit_memory 4 5.4. /sys/kernel/mm/transparent_hugepage/enabled 4 6. 配置redis 4 7. 启动redis实例 6 8. 创建和启动redis cluster前的准备工作 6 8.1. 安装ruby 7 8.2. 安装rubygems 7 8.3. 安装redis-3.0.0.gem 7 9. redis-trib.rb 7 10. 创建和启动redis集群 8 10.1. 复制redis-trib.rb 8 10.2. 创建redis cluster 9 10.3. ps aux|grep redis 10 11. redis cluster client 11 11.1. 命令行工具redis-cli 11 11.2. 从slaves读数据 11 11.3. jedis(java cluster client) 11 11.4. r3c(C++ cluster client) 12 12. 新增节点 12 12.1. 添加一个新主(master)节点 12 12.2. 添加一个新从

Redis报错:DENIED Redis is running in protected mode

眉间皱痕 提交于 2020-05-03 20:39:43
转:Redis使用认证密码登录 Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用。这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安全性。 1. 修改配置文件 Redis的配置文件默认在 /etc/redis.conf ,找到如下行: #requirepass foobared 去掉前面的注释,并修改为所需要的密码: requirepass myPassword (其中myPassword就是要设置的密码) 2. 重启Redis 如果Redis已经配置为 service 服务,可以通过以下方式重启: service redis restart 如果Redis没有配置为 service 服务,可以通过以下方式重启: /usr/local/bin/redis-cli shutdown /usr/local/bin/redis-server /etc/redis.conf 3. 登录验证 设置Redis认证密码后,客户端登录时需要使用 -a 参数输入认证密码,不添加该参数虽然也可以登录成功,但是没有任何操作权限。如下: $ ./redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> keys * (error) NOAUTH

34_创建Redis集群 管理集群

霸气de小男生 提交于 2020-05-02 21:17:05
版本:4.0.8 环境准备 准备 6台(51-56) redis服务器 以默认配置运行redis服务即可 一.创建Redis集群 1.启用集群功能( 51-56 都要配置) ]# netstat -antupl |grep :6379(要有东西) ]# /etc/init.d/redis_6379 stop *一一对应,以52为例* ]# vim /etc/redis/6379.conf 70 bind 192.168.4.52 93 port 6352 815 cluster-enabled yes 823 cluster-config-file nodes-6352.conf 829 cluster-node-timeout 5000 :wq ]# /etc/init.d/redis_6379 start ]# netstat -utnlp | grep redis-server tcp 0 0 192.168.4.52:6352 0.0.0.0:* LISTEN 7469/redis-server 1 tcp 0 0 192.168.4.52:16352 0.0.0.0:* LISTEN 7469/redis-server 1 ]# cat /var/lib/redis/6379/nodes-6352.conf 查看集群信息文件

基于Docker-compose搭建Redis高可用集群-哨兵模式(Redis-Sentinel)

我的未来我决定 提交于 2020-05-01 21:40:55
原文转载自「刘悦的技术博客」 https://v3u.cn/a_id_110 我们知道,Redis的集群方案大致有三种:1)redis cluster集群方案;2)master/slave主从方案;3)哨兵模式来进行主从替换以及故障恢复。 sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。 同样,我们使用docker进行搭建 新建一个mkdir redis-sentinel文件夹 进入项目文件夹 cd redis-sentinel,再建立一个sentinel专门来存放哨兵脚本,然后cd sentinel 建立sentinel.conf配置文件: sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 5000 该配置的意思是,监控主服务器的6379端口并且起两个实例,如果哨兵5s内没有收到主节点的心跳,哨兵就认为主节点宕机了