当前位置: 首页 > news >正文

redis的高级特性

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Redis数据的备份和恢复

 

Redis SAVE 命令用于创建当前数据库的备份。

步骤:

1、连接上需要做数据备份的redis实例

4d636bc2e4877593569f47eefd4c76b41cb.jpg

2、执行SAVE 命令 该命令将在 redis 安装目录中创建dump.rdb文件。

4d636bc2e4877593569f47eefd4c76b41cb.jpg

 

恢复数据

 

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令,如下所示:

3784830018448abfe6aaed798f50b819124.jpg

以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis-cluster/7031

 

创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

 

 

Redis的安全

 

我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。

 

 

Redis的管道技术

 

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:

客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。

服务端处理命令,并将结果返回给客户端。

 

Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

 

Redis管道技术的优势是:显著的提高了redis的性能

 

使用的场景:批量的向redis中插入数据

 

Redis分区

 

Redis分区:分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。

 

分区的优势

通过利用多台计算机内存的和值,构造更大的数据库。

通过多核和多台计算机,扩展计算能力;

通过多台计算机和网络适配器,扩展网络带宽。

 

分区的不足

redis的一些特性在分区方面表现的不是很好:

涉及多个key的操作通常是不被支持的。举例来说,当两个set映射到不同的redis实例上时,你就不能对这两个set执行交集操作。

涉及多个keyredis事务不能使用。

当使用分区时,数据处理较为复杂,比如你需要处理多个rdb/aof文件,并且从多个实例和主机备份持久化文件。

增加或删除容量也比较复杂。redis集群大多数支持在运行时增加、删除节点的透明数据平衡的能力,但是类似于客户端分区、代理等其他系统则不支持这项特性

 

Redis的分区的类型

1、范围分区

最简单的分区方式是按范围分区,就是映射一定范围的对象到特定的Redis实例。

比如,ID010000的用户会保存到实例R0ID10001 20000的用户会保存到R1,以此类推。

这种方式是可行的,并且在实际中使用,不足就是要有一个区间范围到实例的映射表。这个表要被管理,同时还需要各 种对象的映射表,通常对Redis来说并非是好的方法。

2、哈希分区

另外一种分区方法是hash分区。这对任何key都适用,也无需是object_name:这种形式,像下面描述的一样简单:

用一个hash函数将key转换为一个数字,比如使用crc32 hash函数。对key XXXX执行crc32(XXXX)会输出类似93024922的整数。

对这个整数取模,将其转化为0-3之间的数字,就可以将这个整数映射到4Redis实例中的一个了。93024922 % 4 = 2,就是说key foobar应该被存到R2实例中。注意:取模操作是取除的余数,通常在程序中用%操作符实现。

 

 

转载于:https://my.oschina.net/demons99/blog/1925385

相关文章:

  • 新版ExTiX 诞生,基于 Ubuntu 的桌面 Linux 发行
  • 移动端测试===从安卓手机截图到桌面的几行代码
  • redis系列:通过日志案例学习string命令
  • Go 与 Scala
  • 互联网健康教育品牌百诺名医汇获深圳汇投资本3000万元Pre-A轮融资
  • 教你快速入门ES6
  • tranform知多少
  • Android酷炫实用的开源框架(UI框架)
  • Binder总结篇1-Binder原理
  • malloc()函数(Linux程序员手册)及函数的正确使用【转】
  • ListBean 排序
  • HYPER-V的安装和双机调试的配置(一)
  • java核心技术读书笔记
  • Android 9.0新特性
  • JS中逻辑运算符中 == 的问题
  • 【Amaple教程】5. 插件
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Java基本数据类型之Number
  • markdown编辑器简评
  • Next.js之基础概念(二)
  • Node + FFmpeg 实现Canvas动画导出视频
  • passportjs 源码分析
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpringCloud集成分布式事务LCN (一)
  • Vue 2.3、2.4 知识点小结
  • 官方解决所有 npm 全局安装权限问题
  • 聊聊redis的数据结构的应用
  • 你不可错过的前端面试题(一)
  • 前端设计模式
  • 详解移动APP与web APP的区别
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # Panda3d 碰撞检测系统介绍
  • #define与typedef区别
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (1)(1.13) SiK无线电高级配置(六)
  • (23)Linux的软硬连接
  • (bean配置类的注解开发)学习Spring的第十三天
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (译)计算距离、方位和更多经纬度之间的点
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net操作Excel出错解决
  • .NET命名规范和开发约定
  • .net实现客户区延伸至至非客户区
  • .NET委托:一个关于C#的睡前故事
  • :=
  • @SentinelResource详解
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [ 转载 ] SharePoint 资料
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [20170713] 无法访问SQL Server
  • [2021 蓝帽杯] One Pointer PHP
  • [Angular] 笔记 8:list/detail 页面以及@Input