`
javandroid
  • 浏览: 25546 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

redis进阶

 
阅读更多
redis入门博客地址:Redis入门

一、安全性

可以在增加requirepass 密码,则客户端连接服务器时需要密码认证才能连接redis服务器。

二、Redis主从备份

redis主从复制过程:
1.Slave与master建立连接,发送sync同步命令
2.Master会启动一个后台进程,将数据库快照保存到文件中,同时master进程会开始收集新的写命令缓存
3.后台完成保存后,就将此文件发送给slave
4.Slave将此文件保存到硬盘上

具体的配置:
克隆一台配置好的虚拟机(被克隆的机器作为Master主服务器,克隆后的机器作为Slave从服务器)。然后修改克隆后的机器的配置,修改其mac地址,ip地址,主机名hostname。然后修改redis配置,要设置slave机器为master的从服务器:

slaveof主服务器 端口


注意:当redis设置主从备份后,slave默认就是只读模式,无法进行写入。
如果进行写操作则会报如下的错误:
(error) READONLY You can't write against a read only slave.

问题:是否有必要开启redis的写操作权限呢?
http://www.tuicool.com/articles/VBzMz2u
那是不是只要用redis的话,就尽量打开slave可写选项呢?我认为,这个选项尽量不要打开。事实上,默认的redis.conf也是没有打开这个选项。原因是,即使打开了这个选项,向redis slave中写了数据,写入的数据也不会同步到master。所以,redis支持的是master-slave结构,而不是master-master这种双活结构。
当下一次,master上的数据又有所修改之后,这个数据又会同步到slave上,slave上临时写入的数据就会丢失。

演示redis的主从切换

需要三台虚拟机,一台主服务器,一台从服务器,一台redis sentinel做集群监控。
参考博客:redis主从切换集群管理

三、Redis中的事务

Redis中的事务是一组命令的集合。

四、持久化机制

参考网址:Redis持久化

Redis支持的持久化方式

redis支持四种持久化方式:
1.Snapshotting(快照)
快照是Redis默认的持久化方式。
在默认情况下,Redis将数据库快照保存在名字为 dump.rdb 的二进制文件中。
你可以对Redis进行设置,让它在“N秒内数据集至少有M个改动”这一条件被满足时,自动保存一次数据集。
你也可以通过调用 SAVE 或者 BGSAVE ,手动让Redis进行数据集保存操作。
比如说,以下设置会让Redis在满足“60秒内有至少有1000个键被改动”这一条件时,自动保存一次数据集:
  save 60 1000   //60秒内有至少有1000个键被改动
这种持久化方式被称为快照(snapshot)。
我们也可以手动的触动快照操作,使用的命令是SAVE和BGSAVE.
BGSAVE命令会进行后台保存。
2.Append-only file(缩写aof)的方式
默认情况下Redis没有开启AOF方式的持久化,可以通过appendonly参数开启。
appendonly yes
开启AOF持久化后每执行一条更改Redis中的数据的命令,Redis就会将改命令写入到硬盘的AOF文件中。AOF文件的保存位置与RDB文件的保存位置相同,都是可以通过dir参数设置的,默认的文件名是appendonly.conf,可以通过appendfilename参数修改:
appendfilename appendonly.aof
默认情况下系统每30秒回执行一次同步操作,以便将硬盘缓存中的内容真正地写入硬盘,在这30秒的过程中如果系统异常退出则会导致硬盘缓存中的数据丢失。

3.虚拟内存方式

4.diskstore方式

RDB 和 AOF ,我应该用哪一个?
一般来说,如果想达到足以媲美 PostgreSQL 的数据安全性,你应该同时使用两种持久化功能。
如果你非常关心你的数据,但仍然可以承受数分钟以内的数据丢失,那么你可以只使用 RDB 持久化。
有很多用户都只使用AOF持久化,但我们并不推荐这种方式:因为定时生成RDB快照(snapshot)非常便于进行数据库备份,
并且RDB恢复数据集的速度也要比 AOF 恢复的速度要快,
除此之外,使用 RDB 还可以避免之前提到的AOF程序的bug。


遇到问题
操作redis时,报过这样的错误:
(error) 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.
解决方法:
redis-cli 
config set stop-writes-on-bgsave-error no

redis有4种持久化方式。

RDB
Redis默认的持久化方式是快照。

AOF

快照模式可以和AOF模式同时开启,互不影响

五、发布订阅消息

消息publish/subscribe

六、虚拟内存的使用


七、Redis在项目中的使用

redis可以作为缓存层。
比较典型的场景是登录,可以用来做分布式session管理(session共享)
基于redis的list可以实现消息队列。这个是非常有用的一个了。
发布订阅:消息publish/subscribe 。
Redis作者谈Redis应用场景

分享到:
评论

相关推荐

    Redis进阶(深度历险)

    本进阶教程“Redis深度历险”旨在帮助读者深入理解Redis的核心特性和应用场景,从而更好地利用它来提升应用的性能和效率。 1. **Redis的数据结构** - 字符串(Strings):最基础的数据类型,可存储任意长度的字符串...

    Redis进阶.zip

    Redis进阶.zip

    Redis进阶,架构师成长之路

    Redis进阶,架构师成长之路

    Redis进阶实践之十四 Redis-cli命令行工具使用详解第一部分.md

    ### Redis进阶实践之十四:Redis-cli命令行工具使用详解(第一部分) #### 工具概述 ##### Redis-cli 简介 Redis-cli 是 Redis 官方提供的一个强大的命令行客户端工具,它允许用户直接与 Redis 服务器进行交互,...

    第十九讲redis使用进阶.pptx

    根据提供的信息,我们可以总结出关于 Redis 进阶使用的几个关键知识点: ### 一、Redis 的基本概念 **Redis**(Remote Dictionary Server)是一种开源的内存数据结构存储系统,可以作为数据库、缓存和消息中间件...

    面试必备—Redis进阶问题讲解.mp4

    java架构面试讲解必备

    Redis专项进阶课 解决Redis工作实际问题+掌握Redis6.x特性-附件资源

    Redis专项进阶课 解决Redis工作实际问题+掌握Redis6.x特性-附件资源

    Redis6.x专项进阶课(解决Redis工作实际问题).rar

    分享视频教程——Redis6.x专项进阶课(解决Redis工作实际问题),2020年11月录制,附源码;本课程以一个实战项目为主线,整合Redis各种问题场景,不断改造项目,以问带学。学完本课后,面对Redis相关问题,你将能够...

    Redis介绍的课件

    Redis是一种开源的高性能键值对存储数据库,它支持数据的网络访问、基于内存的数据处理方式,并且以NoSQL的形式出现。Redis能够以键值对的方式存储数据,同时它也提供了丰富的数据类型,比如字符串(String)、列表...

    redis使用进阶.pptx

    Redis 使用进阶 Redis 是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis 提供了丰富的数据结构,如字符串、哈希表、列表、集合、有序集合等,同时支持事务、持久化、主从复制等...

    redis学习手册

    ### Redis进阶 #### 5. 主从复制 通过主从复制,可以实现数据备份和读写分离,提升系统的可用性和读取性能。主节点负责写操作,从节点同步主节点数据并处理读请求。 #### 6. 哨兵(Sentinel)系统 哨兵系统是Redis...

    Redis专项进阶课 解决Redis工作实际问题+掌握Redis6.x特性

    ### Redis专项进阶课程知识点概览 #### 一、Redis基础回顾与应用场景解析 - **Redis简介**:Redis(Remote Dictionary Server)是一款开源的、基于内存的键值存储系统,用作数据库、缓存和消息中间件。它支持多种...

    redis相关笔记和配置文件示例

    **Redis进阶** 1. **数据结构操作**:如`LPUSH/RPOP`用于列表,`HSET/HGET`用于哈希,`SADD/SMEMBERS`用于集合,`ZADD/ZRANGE`用于有序集合。 2. **事务**:Redis支持多条命令组成一个事务,通过`MULTI`、`EXEC`、`...

    Redis语法,Key值设计及常用案例介绍

    五、Redis进阶特性 1. 事务:`MULTI`、`EXEC`命令支持批量操作,保证原子性。 2. 发布订阅:`PUBLISH`和`SUBSCRIBE`实现消息发布与订阅功能。 3. 有序集合:通过分数进行排序,适用于Top N问题。 4. 位图:高效处理...

    Redis入门指南..

    六、Redis进阶 随着对Redis的深入使用,会涉及到主从复制的配置、Redis Cluster的搭建、性能调优和安全策略等方面,这些都是提高Redis稳定性和效率的关键。 七、Redis的社区与生态 Redis拥有活跃的社区,不断推出新...

    redis笔记.zip

    **Redis进阶特性** 1. **Pipeline**:通过批量发送命令减少网络延迟,提高处理速度。 2. **地理空间索引(Geo)**:Redis提供了存储和查询地理位置数据的能力,适用于位置服务应用。 3. **HyperLogLog**:高效估算不同...

    redis学习笔记,redis详解,Java源码.zip

    九、Redis进阶特性 1. GEO(地理空间索引):存储地理位置信息,支持范围查询。 2. HyperLogLog:估算唯一元素数量,节省存储空间。 3. Stream:类似于日志的结构,支持复杂的数据处理和消息传递。 通过阅读本学习...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)19.redis使用进阶 共16页.pptx

    【课程大纲】01....共14页.pptx17.hadoop分布计算配置 共15页.pptx18.redis安装实战 共18页.pptx19.redis使用进阶 共16页.pptx20.redis实用命令实战 共27页.pptx21.redis实战案例及总回顾 共18页.pptx

Global site tag (gtag.js) - Google Analytics