redis 高级配置
一.安全性
设置密码:在配置文件中设置
requirepass 123456
由于redis的速度非常快,每秒可以进行15万次的暴力破解,所以密码设置要强壮些
在客户端登录或者连接的时候,使用 auth 123456进行授权,以后才有权限继续
也可以在登录的时候直接指定,例如 /usr/local/redis/bin/redis-cli -a 123456
二,主从复制
修改从服务器的配置
打开 slaveof 前的#注释,设置 slaveof 主服务器IP 主服务器端口
如果主服务器设置了密码,masterauth 主机密码
可以用info命令查看连接状态
role:slave 表示当前是从服务器
master_link_status:up 表示当前正在连接状态
三,数据持久化
redis是一个支持持久化的内存数据库,也就是说redis需要经常把内存中的数据同步到硬盘,以保证数据的持久性和安全性
redis的持久化分为两种方式:
1.snapshotting(快照) 这是默认的方式,也已经自动开启了
2.Append-only file (缩写为aof) 这是将数据的写操作保存成文件,在数据库每次启动的时候都会去读取这个文件,重新构建数据库内容,有点类似于mysql的bin-log日志
由于快照方式是每隔多长时间执行一次,所以还是有数据丢失的可能性,当然aof的方式默认由于os也会在内存中缓存写操作做的修改,所以有可能也是马上写入文件,也有可能丢失数据,下面会讲到修改的方法
打开方式:
快照方式
aof 文件方式
在配置文件中找到如下命令,修改
四,redis的 pub/sub 发布与订阅消息
这个现在看来类似于Linux的广播,不知道在php连接客户端的时候如何使用,
在客户端登陆后 执行 subscribe tv1 就会一直监听tv1是否有消息
然后另外一个客户端,执行 publish tv1 haoxiang 就会把消息发送到所有正在监听tv1的客户端
五,虚拟内存
redis的虚拟内存和操作系统的虚拟内存不是一回事,但是原理是一样的,都是暂时把不太访问的数据从内存交换到硬盘,从而腾出宝贵的内存空间。尤其是对redis这种内存性数据库,内存永远是不够用的,除了将数据分割到多个redis server之外,另外能够提高数据库容量的办法就是设置虚拟内存
和大多NoSQL数据库一样,Redis同样遵循了Key/Value数据存储模型。在有些情况下,Redis会将Keys/Values保存在内存中以 提高数据查询和数据修改的效率,然而这样的做法并非总是很好的选择。鉴于此,我们可以将之进一步优化,即尽量在内存中只保留Keys的数据,这样可以保证 数据检索的效率,而Values数据在很少使用的时候则可以被换出到磁盘。
在实际的应用中,大约只有10%的Keys属于相对比较常用的键,这样Redis就可以通过虚存将其余不常用的Keys和Values换出到磁盘上,而一旦这些被换出的Keys或Values需要被读取时,Redis则将其再次读回到主内存中。 应用场景: 对于大多数数据库而言,最为理想的运行方式就是将所有的数据都加载到内存中,而之后的查询操作则可以完全基于内存数据完成。然而在现实中这样的场景却并不普遍,更多的情况则是只有部分数据可以被加载到内存中。
在Redis中,有一个非常重要的概念,即keys一般不会被交换,所以如果你的数据库中有大量的keys,其中每个key仅仅关联很小的value,
那么这种场景就不是非常适合使用虚拟内存。如果恰恰相反,数据库中只是包含少量的keys,而每一个key所关联的value却非常大,那么这种场景对于
使用虚存就再合适不过了。
在实际的应用中,为了能让虚存更为充分的发挥作用以帮助我们提高系统的运行效率,我们可以将带有很多较小值的Keys合并为带有少量较大值的Keys。
其中最主要的方法就是将原有的Key/Value模式改为基于Hash的模式,这样可以让很多原来的Keys成为Hash中的属性。
默认是关闭的,开始方法:修改配置文件中参数如下
vm-enabled yes #开启功能,默认是no
really-use-vm yes #确认开启,默认没有,不添加会提示添加的
vm-swap-file /tmp/redis.swap #交换出来的value的默认保存路径,默认存在
vm-max-memory 1000000 #redis默认使用的最大内存上限,默认存在
vm-page-size 32 #每个页面的大小32字节,默认存在
vm-pages 134217728 #最多使用多小页面,默认存在
vm-max-threads #用于执行value对象换入的工作线程数量,默认存在
redis 高级配置的更多相关文章
- [Redis]Redis高级特性的配置及使用
---------------------------------------------------------------------------- [Redis安全性] 一 . 默认我们进入Re ...
- (转)REDIS各项配置参数介绍
# 默认情况下,redis不是在后台模式运行的,如果需要在后台进程运行,把该项的值更改为yes,默认为no daemonize:是否以后台daemon方式运行 # 如redis服务以后台进程运行的时候 ...
- Redis配置文件之————redis.conf配置及说明
基本设置 1. 备释当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):1k =< 1000 bytes1kb =< 1024 by ...
- NoSQL之Redis高级实用命令详解--安全和主从复制
Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...
- redis 配置文件配置
redis的配置和使用 redis的配置的分段的 配置段: 基本配置项 网络配置项 持久化相关配置 复制相关的配置 安全相关配置 Limit相关的配置 SlowLog相关的配置 INCLUDES Ad ...
- 3.Redis高级功能
3.Redis高级功能3.1 慢查询分析3.1.1 慢查询的两个配置参数3.1.2 最佳实践3.1.3 单线程架构3.2 Redis Shell3.2.1 redis-cli 详解3.2.2 redi ...
- Redis:redis.conf配置
redis.conf配置: 配置主要分为几类:基础.快照.复制.安全.限制.详细日志.虚拟内存.高级配置.文件包含 ##------------------------------------基础配置 ...
- redis 安装配置 [转]
Redis是目前众多NoSQL产品中非常有特点的一款,支持的数据类型和方法都非常丰富,做为一款具备持久化功能的软件,实际使中更多却是将其做为cache. 三思在个人的测试环境中安装使用了两三天,这期间 ...
- Linux 安装redis 基本配置 发布订阅,安全配置,持久化 rdb ,aof
redis redis相关配置1.yum 源码 rpm yum 快速,间接,高效,解决依赖关系,(自动安装到某个路径,不可控),通过yum安装的软件查询命令 rpm -ql nginx yum源 ...
随机推荐
- android4.0蓝牙使能的详细解析(转)
源:http://www.cnblogs.com/xiaochao1234/p/3818193.html 本文详细分析了android4.0 中蓝牙使能的过程,相比较android2.3,4.0中的蓝 ...
- RocketMQ源码 — 三、 Producer消息发送过程
Producer 消息发送 producer start producer启动过程如下图 public void start(final boolean startFactory) throws MQ ...
- sql查询技巧,按时间分段进行分组,每半小时一组统计组内记录数量
今天拿到一个查询需求,需要统计某一天各个时间段内的记录数量. 具体是统计某天9:00至22:00时间段,每半小时内订单的数量,最后形成的数据形式如下: 时间段 订单数 9:00~9: ...
- 原创:LoadTest系列之Local.testtings之Web Test
在录制脚本后,需要对脚本进行回放,而在Loal.testting的Web Test设置中,可以设置脚本运行的次数,以及是否考虑think time等,如下图所示: 1. 双击Solution Item ...
- Arduino IDE 添加DHT11传感器第三方库的方法
由于Arduino本身没有DHT 11温湿度传感器的的头文件,单有第三方的库可以给我门使用.方法如下: Step 1:如果你已经下载了最新版的Arduino IDE就可以使用其自带的库管理器和版型管理 ...
- Android - Get Bluetooth UUID for this device
Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join th ...
- 关于源码编译每次提示有错误 要make update-api
最近编译newline的版本的时候..同事修改了andoid默认输入法为百度.这是系统自动提供的API,所以每次编译会提示 此时在编译源码生成SDK的过程中会出现这个问题:************** ...
- CodeForces 614A Link/Cut Tree
#include<cstdio> #include<cstring> #include<cmath> #include<stack> #include& ...
- mac home/end/pageup/pageDown
home:按fn+左键 end:按fn+右键 pageup:按fn+上键 pagedown:按fn+下键
- iOS开发——绘图电池按百分比显示
1.在DrawLine.h文件中提供了一个改变电池电量数值的接口 // // DrawLine.h // Demo-draw2 // // Created by yyt on 16/5/11. ...