redis 验证消息队列也是写磁盘的

# 下面的例子将会进行把数据写入磁盘的操作:
# 900秒(15分钟)之后,且至少1次变更
# 300秒(5分钟)之后,且至少10次变更
# 60秒之后,且至少10000次变更
#
# 注意:你要想不写磁盘的话就把所有 "save" 设置注释掉就行了。

save 900 1
save 300 10
save 60 10000


redis01:/data01/redis# cat /etc/redis.conf | grep mem
redis01:/data01/redis# cat /etc/redis.conf | grep save
save 10 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes


如果启用如上的快照(RDB),在一个存盘点之后,可能磁盘会坏掉或者权限问题,redis将依然能正常工作

stop-writes-on-bgsave-error yes


关于maxmemory的设置,如果redis的应用场景是作为db使用,那不要设置这个选项,因为db是不能容忍丢失数据的。  
如果作为cache使用,则可以启用这个选项(其实既然有淘汰策略,那就是cache了。。。)  
  
指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,    
# 当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。    
# Redis新的vm机制,会把Key存放内存,Value会存放在swap区

/*****************测试:

[elk@zjtest7-frontend config]$ cat logstash_agent.conf 
input {
              stdin {
           
                type => "uat_test_scan" 
        } 

 
}



output {
     if   [type] == "uat_test_scan"{
       redis { 
                host => "192.168.32.67" 
                data_type => "list" 
                key => "uat_test_scan:redis" 
                port=>"6379" 
                password => "1234567" 
        } 
       }  
   }
  

  

[elk@zjtest7-frontend config]$ ../bin/logstash -f logstash_agent.conf 
Settings: Default pipeline workers: 1
Pipeline main started
aaaaaaaaaaa

127.0.0.1:6379> LLEN  "uat_test_scan:redis"
(integer) 1

此时队列深度为1

取走消息:
127.0.0.1:6379> BLPOP  "uat_test_scan:redis" 1
1) "uat_test_scan:redis"
2) "{"message":"aaaaaaaaaaa","@version":"1","@timestamp":"2016-09-23T05:01:16.766Z","type":"uat_test_scan","host":"0.0.0.0"}"
127.0.0.1:6379> BLPOP  "uat_test_scan:redis" 2
(nil)
(2.04s)
127.0.0.1:6379> LLEN  "uat_test_scan:redis"
(integer) 0


重启redis后 消息仍旧在
127.0.0.1:6379> LLEN "uat_test_scan:redis"
(integer) 1
127.0.0.1:6379> BLPOP  "uat_test_scan:redis" 2
1) "uat_test_scan:redis"
2) "{"message":"3131313","@version":"1","@timestamp":"2016-09-23T05:15:30.601Z","type":"uat_test_scan","host":"0.0.0.0"}"


# 注意:你要想不写磁盘的话就把所有 "save" 设置注释掉就行了。

save 900 1
save 300 10
save 60 10000
重启前:
127.0.0.1:6379> auth 1234567
OK
127.0.0.1:6379> keys *
 1) "xacxedx00x05tx00!message_left:20160825:15950503897"
 2) "xacxedx00x05tx00x18contract_rebuild_qty:417"
 3) "uat_test_scan:redis"
 4) "xacxedx00x05tx00!message_left:20160630:18158464881"
 5) "xacxedx00x05tx00x18contract_rebuild_qty:422"
 6) "xacxedx00x05tx00Dapp_permission_cache:com.zjzc.common.vo.permission.AppPermissionBean"
 7) "logstash-demochan"
 8) "xacxedx00x05tx00!message_left:20160815:18957143393"
 9) "xacxedx00x05tx00x18contract_rebuild_qty:423"
10) "aa"
11) "xacxedx00x05tx00x18contract_rebuild_qty:427"
127.0.0.1:6379> LLEN "uat_test_scan:redis"
(integer) 1
127.0.0.1:6379> 
redis01:/etc/init.d# ps -ef | grep redis
root     18595     1  0 13:36 ?        00:00:00 /usr/local/bin/redis-server *:6379         
root     18604 17672  0 13:36 pts/0    00:00:00 grep redis
redis01:/etc/init.d# kill -9 18595
redis01:/etc/init.d# ps -ef | grep redis






重启后:

127.0.0.1:6379> keys *
 1) "xacxedx00x05tx00!message_left:20160630:18158464881"
 2) "xacxedx00x05tx00!message_left:20160825:15950503897"
 3) "xacxedx00x05tx00x18contract_rebuild_qty:423"
 4) "aa"
 5) "xacxedx00x05tx00Dapp_permission_cache:com.zjzc.common.vo.permission.AppPermissionBean"
 6) "xacxedx00x05tx00x18contract_rebuild_qty:427"
 7) "xacxedx00x05tx00x18contract_rebuild_qty:422"
 8) "xacxedx00x05tx00!message_left:20160815:18957143393"
 9) "xacxedx00x05tx00x18contract_rebuild_qty:417"
10) "logstash-demochan"


验证消息队列也是写磁盘的

原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199171.html