redis高级实用特性
1. 安全性
2. 主从复制
3. 事务处理
4. 持久化机制
5. 发布订阅消息 : 可以做一个消息系统
6. 虚拟内存的使用
一 . 安全性
设置客户端连接后进行任何其他指定前需要使用的密码 .
警告 : 因为redis 速度相当快 , 所以在一台比较好的服务器下 , 一个外部的用户可以在一秒钟进行150k次的密码尝试 , 这意味着你需要指定非常非常强大的密码来防止暴力破解 .
> requirepass passwordStr // 在redis.conf 中添加这句话即可.
设置完成后需要重启服务才能生效 .
连接redis server时 需要添加密码
> redis-cli -a password // -a 参数代表是密码 .
二 . 主从复制
1. Master 可以拥有多个slave
2. 多个slave 可以连接同一个master外 , 还可以连接到其它slave
3. 主从复制 不会阻塞master , 在同步数据时 , master 可以继续处理client请求.
4. 提高系统的伸缩性
主从复制过程 :
1. slave 与 master 建立连接 , 发送sync同步命令
2. master 会启动一个后台进程 , 将数据库快照保存到文件中, 同时master主进程会开始收集新的写命令并缓存 .
3. 后台完成保存后 , 就将此文件发送给slave
4. slave 将此文件保存到硬盘上 .
配置主从服务器 :
配置slave服务器 , 只需要在slave的配置文件中加入以下配置
slaveof 192.168.1.1 6379 # 指定master的ip 和 端口
masterauth pwd # 这是主机的密码
查看主从信息 :
通过命令 info 即可 查看 , 有一个role 字段 ,如果是从机的话就是slave
事务处理 :
redis对事务的支持目前还比较简单 , redis 只能保证一个client发起的事务中的命令可以连续的执行 , 而中间不会插入其他client命令 , 当一个client在一个连接中发出multi命令时 , 这个连接会进入一个事务上下文 , 该连接后续的命令不会立即执行 , 而是先放到一个
multi : 打开事务 , 类似mysql begin
exec : 结束事务 , 类似mysql commit
乐观锁复杂事务控制
乐观锁 : 大多数是基于数据版本的记录机制实现的 . 即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表添加一个 version 字段来实现读取数据时 , 将此版本号一同读出 , 之后更新时 , 对此版本号加1 , 此时 , 将提交数据的版本号与数据库表对应记录的当前版本号进行比对 , 如果提交的数据版本号大于数据库当前版本号,则予以更新 , 否则认为是过期数据 .
snapshotting 方式
快照是默认的持久化方式 . 这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb . 可以通过配置设置自动做快照持久化的方式 , 我们可以配置redis在n秒内如果超过m个key呗修改就自动做快照 .
aof 方式
由于快照方式是在一定时间间隔做一次的 , 所以如果redis意外down掉的话 , 就会丢失最后一次快照后的所有修改 .
aof比快照方式有更好的持久化性 , 是由于在使用aof时, redis会将每一个收到的写命令都通过write函数追加到文件中, 当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容 .
redis高级实用特性的更多相关文章
- Redis学习第八课:Redis高级实用特性(二)
Redis高级实用特性 4.持久化机制 Redis是一个支持持久化的内存数据库,也就是说Redis需要经常将内存中的数据同步到硬盘来保证持久化.Redis支持两种持久化方式:(1).snapshott ...
- Redis学习第八课:Redis高级实用特性(一)
Redis高级实用特性 注:我学习的环境是vmware7.1 + ubantu10.10+ redis 3.0.2 1.安全性 设置客户端连接后进行任何其他指定前需要的密码.因为redis速度相当快, ...
- redis高级实用特性(2)
事务处理: redis对事务的支持目前还是比较简单,redis只能保证一个 client发起事务中的命令可以连续执行,而中间不会插入其他 client的命令,当一个client 在一个连接中发出mul ...
- redis高级实用特性(1)
1.安全性 2.主从复制 3.事务处理 4.持久化机制 5.发布订阅消息 6.虚拟内存的使用 安全性:设置客户端连接后进行任何其他指定前需要使用的密码 警告:因为redis速度相当快,所以在一台比较好 ...
- Redis 高级实用特性
1.安全性 设置客户端连接后进行任何其他操作前先验证密码. 因为Redis速度相当快,所以在一台比较好的服务器下,一个外部用户可以在一秒钟进行150K次的密码尝试,这意味着需要指定一个非常强大的密码来 ...
- Redis数据库高级实用特性:持久化机制
Redis数据库高级实用特性:持久化机制 大型web系统数据缓存设计 Redis高级特性:虚拟内存的使用技巧 Redis高级实用特性:安全性与主从复制 Memcached.Redis OR Tair
- NoSQL之Redis高级实用命令详解--安全和主从复制
Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...
- redis高级应用特征
Redis高级应用特性 1.安全性 2.主从复制 3.事务处理 4.持久化机制 5.发布订阅消息 6.虚拟内存的使用 安全性 设置客户端连接后进行任何其他指定前需要使用的密码. 警告:因为redis速 ...
- redis 高级特性 不要太好用
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
随机推荐
- 【C#设计模式——创建型模式】工场方法模式
工场方法模式对简单工场模式进行了乔庙的扩展,不是用一个专门的类来决定实例化哪一个子类.相反,超类把这种决定延迟到每个子类.这种模式实际上没有决策点,就是没有直接选择一个子类实例化的决策. 看书上的例子 ...
- BZOJ 2299 向量
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2299 题意:给出一对数a,b,任意使用(a,b), (a,-b), (-a,b), (- ...
- Sublime Text汉化方法和注册码
汉化方法 安装 SublimeText3 汉化包运行SublimeText3 点击 Preferneces -> Browse Packages 会打开 X:\..\Sublime Text 3 ...
- BZOJ3850: ZCC Loves Codefires
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3850 题解:类似于国王游戏,推一下相邻两个元素交换的条件然后排个序就可以了. 代码: #inc ...
- Dialog第三方登录等待
1. styles.xml 中加入 <style name="loadingDialogStyle" parent="android:Theme.Dialog&qu ...
- qq互联(connect.qq.com)取用户信息的方法
<?php //应用的APPID$app_id = "YOUR_APP_ID";//应用的APPKEY$app_secret = "YOUR_APP_KEY&quo ...
- [反汇编练习] 160个CrackMe之018
[反汇编练习] 160个CrackMe之018. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...
- DataTables ajax重新加载数据
传数据给后台返回数据,最开始的办法是 重新生成一个datatable对象,但是在每次点击刷新时都会有闪动的现象,而且代价很高.理想中应该仅仅更新数据. 最后在文档中查到一个插件fnReloadAjax ...
- MySQL5.6 replication architecture --原图来自姜承尧
- hdu 2825(ac自动机+状态压缩dp)
题意:容易理解... 分析:在做这道题之前我做了hdu 4057,都是同一种类型的题,因为题中给的模式串的个数最多只能为10个,所以我们就很容易想到用状态压缩来做,但是开始的时候我的代码超时了dp时我 ...