Redis(二)
来源:互联网 发布:淘宝十大名店 编辑:程序博客网 时间:2024/06/15 09:48
一、Redis高级命令及特性
返回满足的所有键,可以模糊匹配 KEYS *
是否存在指定的Key EXISTS
expire
设置某个key的过期时间,使用ttl
查看剩余时间 PERSIST
取消过期时间 select
选择数据库,数据库0到15(一共16个数据库),默认进入的是0数据库 move [key] [数据库下标]
将当前数据中的key转移到其他数据库中 randomkey
随机返回数据库里的一个key rename
重命名key dbsize
查看数据看key数量 flushdb
清空当前数据库 config get *
获取配置信息
二、主从复制
主从复制:
1.Master可以拥有多个slave2.多个slave可以连接同一个master外,还可以连接到其他的slave3.主从复制不会阻塞master,在同步数据时,master可以继续处理client请求4.提供系统的伸缩性
主从复制过程:
1.slave与master建立连接,发动sync同步命令2.master会开启一个后台进程,将数据库快照保存到文件,同时master主进程会开始收集新的写命令并缓存3.后台完成保存后,就将文件发送给slave4.slave将此文件保存到硬盘上
主从复制配置
修改配置文件redis.conf1.开发的话建议把 bind 属性设置为 bind 0.0.0.02.slaveof <masterip><masterport>3.masterauth <master-password>
三、哨兵
有了主从复制的实现以后,如果想对主从服务器进行监控,那么就应该使用哨兵的机制。
主要功能特点:
1.监控主数据库和从数据库是否正常运行
2.主数据库出现故障,可以将从数据库转换为主数据库,实现自动切换。
哨兵启动:/usr/local/redis/bin/redis-server /usr/local/redis/etc/sentinel.conf --protected-mode no --sentinel &
查看哨兵相关信息/usr/local/redis/bin/redis-cli -h <SentinelIP> -p 26379 info Sentinel
四、Redis的持久化机制
什么是持久化?简单来讲就是将数据放到断电后数据不会丢失的设备中,也就是我们通常理解的硬盘上。
首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程:
- 客户端向服务端发送写操作(数据在客户端的内存中)。
- 数据库服务端接收到写请求的数据(数据在服务端的内存中)。
- 服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)。
- 操作系统将缓冲区中的数据转移到磁盘控制器上(数据在磁盘缓存中)。
- 磁盘控制器将数据写到磁盘的物理介质中(数据真正落到磁盘上)。
Redis提供了RDB
持久化和AOF
持久化
RDB
snapshortting
快照默认方式,将内存中以快照的方式写入二进制文件中,默认位dump.rdb,可以通过配置设置自动做快照持久化方式,可以配置Redis在n秒内如果超过m个Key则修改,自动做快照。
# 900秒内如果超过1个key被修改,则发起快照保存save 900 1
AOF
aof方式实际类似mysql的基于语句的binlog方式,即每条会使Redis内存数据发生改变的命令都会追加到一个log文件中,也就是说这个log文件就是Redis的持久化数据。
aof的方式的主要缺点是追加log文件可能导致体积过大,当系统重启恢复数据时如果是aof的方式则加载数据会非常慢,几十G的数据可能需要几小 时才能加载完,当然这个耗时并不是因为磁盘文件读取速度慢,而是由于读取的所有命令都要在内存中执行一遍。另外由于每条命令都要写log,所以使用aof 的方式,Redis的读写性能也会有所下降。
appendonly yes // 启动AOF持久化方式有三种修改方式# appendfsync always //收到写命令就立即写入到磁盘,效率最慢,但是保证完全的持久化(生产上推荐)# appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中# appendfsync no //完全依赖os,性能最好,持久化没保证
五、发布订阅消息
Redis提供了简单的发布订阅功能
使用subscribe[频道]
进行订阅监听
会用publis [频道][发布内容]
进行发布消息广播
- redis(二)--命令
- redis(二)
- Redis数据结构(二)
- 复习redis(二)
- Redis基本知识(二)
- redis(二)
- Redis学习(二)
- Redis初识(二)
- redis安装(二)
- redis入门(二)
- scrapy-redis(二)
- redis安装(二)
- (二)Redis安装
- Redis学习(二)
- Redis简介(二)
- Redis 数据类型(二)
- 初识Redis------(二)
- Redis(二)
- 斐波那契数列问题
- Linux驱动学习(三)
- 51nod 1220 约数之和
- JavaScript的三种消息提示窗口
- PAT1018锤子剪刀布 (20)
- Redis(二)
- EasyPlayerPro(Windows)流媒体播放器开发之接口设计
- 浅谈HashMap
- 函数重载重写重定义
- noip2016D2T1 组合数问题
- CSS——常见属性和基础选择器
- 在bt5安装vmware tools
- OpenJudge百炼-2765-八进制小数-C语言-高精度计算
- 安卓 Paint 的 Xfermode