redis 配置文件详解
Redis配置参数详解
Redis配置参数详解Redis是⼀个应⽤⾮常⼴泛的⾼性能Key-Value型数据库,与memcached类似,但功能更加强⼤!本⽂将按照不同功能模块的⽅式,依次对各个功能模块的配置参数进⾏详细介绍。
GENERAL./redis-server /path/to/redis.conf 按照指定的配置⽂件启动include /path/to/other.conf 包含其它的redis配置⽂件daemonize yes 启⽤后台守护进程运⾏模式pidfile /var/run/redis.pid redis启动后的进程ID保存⽂件port 6379 指定使⽤的端⼝号bind IP 监听指定的⽹络接⼝unixsocket /tmp/redis.sock 指定监听的socket,适⽤于unix环境timeout N 客户端空闲N秒后断开连接,参数0表⽰不启⽤loglevel notice 指定服务器信息显⽰的等级,4个参数分别为debug\verbose\notice\warninglogfile “” 指定⽇志⽂件,默认是使⽤系统的标准输出syslog-enabled no 是否启⽤将记录记载到系统⽇志功能,默认为不启⽤syslog-ident redis 若启⽤⽇志记录,则需要设置⽇志记录的⾝份syslog-facility local0 若启⽤⽇志记录,则需要设置⽇志facility,可取值范围为local0~local7,表⽰不同的⽇志级别databases 16 设置数据库的数量,默认启动时使⽤DB0,使⽤“select <dbid>”可以更换数据库tcp-backlog 511 此参数确定TCP连接中已完成队列(3次握⼿之后)的长度,应⼩于Linux系统的/proc/sys/net/core/somaxconn的值,此选项默认值为511,⽽Linux的somaxconn默认值为128,当并发量⽐较⼤且客户端反应缓慢的时候,可以同时提⾼这两个参数。
Redis3.2.6配置文件详细中文说明
Redis3.2.6配置⽂件详细中⽂说明Redis3.2.6最新配置⽂件详细中⽂说明,啥都不说直接看说明############### 指定配置⽂件:################################## INCLUDES ####################################### 1 包含⽂件# 如果想要使⽤到配置⽂件,Redis服务必须以配置⽂件的路径作为第⼀个参数启动。
如:./redis-server /path/to/redis.conf# 单位说明:当需要指定内存⼤⼩时,可能会使⽤到不同的单位,如1k、5GB、4M等,这⾥给出其单位含义:# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes# s指定单位是⼤⼩写不敏感。
如1GB、1gB、1Gb是⼀样的。
# include使⽤:# ⽤于include⼀个或多个配置⽂件。
# 当需要在⼀个标准的通⽤配置模板上进⾏⼀些个性化定制,则可以使⽤include 关键字来include这些个性化配置⽂件。
# 注意:虽然admin 或Redis Sentinel下执⾏的“CONFIG REWRITE”命令(Redis 2.8 引⼊的命令)会重写配置,但并不包含“include”关键字。
也就是说“CONFIG REWRITE”覆盖“include”相关内容。
# 由于redis以最后的配置作为直接配置,所以建议将include命令放置在配置⽂件的最前⾯以防⽌配置被覆盖。
# 但是如果打算使⽤另外的配置⽂件来覆盖当前⽂件的部分或全部配置,那么则可将include命令放置到该⽂件的末尾。
redis集群 配置参数
redis集群配置参数
在Redis集群中,需要配置以下参数:
1. cluster-enabled:设置为yes来启用集群模式。
2. cluster-config-file:指定集群配置文件的路径。
3. cluster-node-timeout:指定集群节点之间的超时时间。
4. cluster-announce-ip:指定集群节点的IP地址。
5. cluster-announce-port:指定集群节点的端口号。
6. cluster-announce-bus-port:指定集群节点之间通信的端口号。
7. cluster-require-full-coverage:设置为yes来要求所有槽位都要有节点才能正常工作。
8. cluster-migration-barrier:设置为yes来阻止在槽迁移期间的对数据的写入操作。
这些参数可以在Redis的配置文件redis.conf中进行设置。
在配置文件中找到对应的参数进行修改并重启Redis服务即可生效。
redis.conf配置参数详解
logfile 日志记录方式,默认值为stdout
databases 可用数据库数,默认值为16,默认数据库为0
save <seconds> <changes> 指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
save 900 1
900秒(15分钟)内至少有1个key被改变
save 300 10 300秒(5分钟)内至少有300个key被改变
save 60 10000 60秒内至少有10000个key被改变
rdbcompression 存储至本地数据库时是否压缩数据,默认为yes
dbfilename 本地数据库文件名,默认值为dump.rdb
maxclients 最大客户端连接数,默认不限制(注释)
maxmemory <bytes> 设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
appendonly 是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
hash-max-ziverehashing yes
Redis官方文档对VM的使用提出了一些建议: 当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大. 当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value. 最好使用linux ext3 等对稀疏文件支持比较好的文件系统保存你的swap文件. vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数.如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.
Redis5.0配置文件中文参考
Redis5.0配置⽂件中⽂参考Redis 5.0 配置⽂件#是否在后台执⾏,yes:后台运⾏;no:不是后台运⾏daemonize yes#是否开启保护模式,默认开启。
要是配置⾥没有指定bind和密码。
开启该参数后,redis只会本地进⾏访问,拒绝外部访问。
protected-mode yes#redis的进程⽂件pidfile /var/run/redis/redis-server.pid#redis监听的端⼝号。
port 6379#此参数确定了TCP连接中已完成队列(完成三次握⼿之后)的长度,当然此值必须不⼤于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,⽽Linux的默认参数值是128。
当系统并发量⼤并且客户端速度缓慢的时候,可以将这⼆个参数⼀起参考设定。
该内核参数默认值⼀般是128,对于负载很⼤的服务程序来说⼤⼤的不够。
⼀般会将它修改为2048或者更⼤。
在/etc/sysctl.conf中添加:net.core.somaxconn = 2048,然后在终端中执⾏sysctl -p。
tcp-backlog 511#指定 redis 只接收来⾃于该 IP 地址的请求,如果不进⾏设置,那么将处理所有请求bind 127.0.0.1#配置unix socket来让redis⽀持监听本地连接。
# unixsocket /var/run/redis/redis.sock#配置unix socket使⽤⽂件的权限# unixsocketperm 700# 此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能⼩于0。
timeout 0#tcp keepalive参数。
如果设置不为0,就使⽤配置tcp的SO_KEEPALIVE值,使⽤keepalive有两个好处:检测挂掉的对端。
降低中间设备出问题⽽导致⽹络看似连接却已经与对端端⼝的问题。
Redis配置文件参数说明
Redis配置⽂件参数说明配置⽂件参数说明:1. Redis默认不是以守护进程的⽅式运⾏,可以通过该配置项修改,使⽤yes启⽤守护进程daemonize no2. 当Redis以守护进程⽅式运⾏时,Redis默认会把pid写⼊/var/run/redis.pid⽂件,可以通过pidfile指定pidfile /var/run/redis.pid3. 指定Redis监听端⼝,默认端⼝为6379,作者在⾃⼰的⼀篇博⽂中解释了为什么选⽤6379作为默认端⼝,因为6379在⼿机按键上MERZ对应的号码,⽽MERZ取⾃意⼤利歌⼥Alessia Merz的名字port 63794. 绑定的主机地址bind 127.0.0.15.当客户端闲置多长时间后关闭连接,如果指定为0,表⽰关闭该功能timeout 3006. 指定⽇志记录级别,Redis总共⽀持四个级别:debug、verbose、notice、warning,默认为verboseloglevel verbose7. ⽇志记录⽅式,默认为标准输出,如果配置Redis为守护进程⽅式运⾏,⽽这⾥⼜配置为⽇志记录⽅式为标准输出,则⽇志将会发送给/dev/nulllogfile stdout8. 设置数据库的数量,默认数据库为0,可以使⽤SELECT <dbid>命令在连接上指定数据库iddatabases 169. 指定在多长时间内,有多少次更新操作,就将数据同步到数据⽂件,可以多个条件配合save <seconds> <changes>Redis默认配置⽂件中提供了三个条件:save 900 1save 300 10save 60 10000分别表⽰900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
10. 指定存储⾄本地数据库时是否压缩数据,默认为yes,Redis采⽤LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库⽂件变的巨⼤rdbcompression yes11. 指定本地数据库⽂件名,默认值为dump.rdbdbfilename dump.rdb12. 指定本地数据库存放⽬录dir ./13. 设置当本机为slav服务时,设置master服务的IP地址及端⼝,在Redis启动时,它会⾃动从master进⾏数据同步slaveof <masterip> <masterport>14. 当master服务设置了密码保护时,slav服务连接master的密码masterauth <master-password>15. 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭requirepass foobared16. 设置同⼀时间最⼤客户端连接数,默认⽆限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最⼤⽂件描述符数,如果设置 maxclients 0,表⽰不作限制。
Redis哨兵(sentinel)模式配置详解及原理介绍
Redis哨兵(sentinel)模式配置详解及原理介绍一、哨兵模式配置详解1.配置哨兵节点在使用哨兵模式前,需要先配置哨兵节点的信息。
在Redis配置文件中,通过设置sentinel monitor关键字来指定需要监控的主服务器节点和端口号,例如:```sentinel monitor mymaster 127.0.0.1 6379 2```其中,mymaster是监控的主服务器的名字,127.0.0.1是主服务器的IP地址,6379是主服务器的端口号,2表示至少有2个哨兵节点认为主服务器不可用时,才会触发自动故障转移。
2.配置哨兵节点的IP和端口号在同一个Redis配置文件中,通过设置sentinel bind和sentinel port关键字来分别指定哨兵节点的IP和端口号,例如:```sentinel bind 127.0.0.1```3.配置哨兵节点的监控数量在同一个Redis配置文件中,通过设置sentinel down-after-milliseconds和sentinel parallel-syncs关键字来分别指定哨兵节点认为主服务器不可用的时间和进行故障转移时,并行同步从服务器的数量,例如:```sentinel parallel-syncs mymaster 1```这里设置哨兵节点认为主服务器已不可用的时间为30秒,进行故障转移时从服务器的数量为14.启动哨兵节点在启动Redis服务器之后,需要使用以下命令来启动哨兵节点:```redis-sentinel /path/to/redis-sentinel.conf```其中,/path/to/redis-sentinel.conf是哨兵节点的配置文件路径。
二、哨兵模式的原理介绍1.消息传递机制在哨兵模式中,哨兵节点之间通过发布/订阅机制进行消息传递。
每个哨兵节点都有一个独立的频道,用来接收来自其他哨兵节点的消息。
这些消息包括对主服务器的主观判断和确认信息以及故障转移的请求和结果。
redis3.0集群__配置文件详解(常用配置)
redis3.0集群__配置⽂件详解(常⽤配置)参考⽂档1 #引⽤其他配置⽂件2 # include /path/to/local.conf34 #是否daemon运⾏no,yes5 daemonize no67 #pid⽂件的位置8 pidfile /tmp/redis.pid910 #开放的端⼝号11 port 63791213 #listen队列的长度14 tcp-backlog 5111516 #绑定ip地址,多个ip⽤空格分隔17 bind 127.0.0.11819 #我没有⽤到20 # unixsocket /tmp/redis.sock21 # unixsocketperm 7552223 #客户端空闲多少s后踢掉,0禁⽌24 timeout 02526 #检测挂掉的连接,单位s,0禁⽌27 tcp-keepalive 02829 #⽇志的等级,debug,verbose,notice,warning30 loglevel notice3132 #log⽂件的路径,为空的话直接显⽰在终端33 logfile ""3435 #是否使⽤系统logger,⼀直没有⽤过。
36 # syslog-enabled no/37 # syslog-ident redis38 # syslog-facility local03940 #redis中有多少个数据库,默认即可41 databases 164243 ################################ SNAPSHOTTING (快照持久化配置) ################################44 #将redis内存数据序列化到磁盘的时间和频率45 #900s有1个key改变就会序列化,其他的读者可以⾃⼰看下46 save 900147 save 3001048 save 60100004950 #序列化的时候是否停⽌写操作51 stop-writes-on-bgsave-error yes5253 #序列化的数据是否压缩54 rdbcompression yes5556 #序列化的数据是否校验其完整性57 rdbchecksum yes5859 #序列化的⽂件名,只是⽂件不能带⽬录60 dbfilename redis.rdb6162 #序列化⽂件的⽬录63 dir /tmp6465 ################################# REPLICATION (主从同步配置)#################################66 #以下是主从备份,我还没有使⽤到67 #指定master ip和port,标明⾃⼰是个从库68 #slaveof <masterip> <masterport>6970 #如果master配置了密码的话,此处也需做设置;71 # masterauth <master-password>7273 #当slave丢失与master端的连接,或者复制仍在处理,那么slave会有下列两种表现:默认值yes。
最详细的docker中安装并配置redis(图文详解)
最详细的docker中安装并配置redis(图⽂详解)⼀、找到⼀个合适的docker的redis的版本可以去docker hub中去找⼀下⼆、使⽤docker安装redissudo docker pull redis安装好之后使⽤docker images即可查看truedei@truedei:~$truedei@truedei:~$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEredis latest 987b78fc9e38 10 days ago 104MBhttpd latest a8a9cbaadb0c 2 weeks ago 166MBfjudith/draw.io latest 7b136fc80d31 3 weeks ago 683MBmysql 5.7.29 f5829c0eee9e 5 weeks ago 455MBtruedei@truedei:~$truedei@truedei:~$三、准备redis的配置⽂件因为需要redis的配置⽂件,这⾥最好还是去redis的官⽅去下载⼀个redis使⽤⾥⾯的配置⽂件即可下载后解压出来:这个redis.conf⽂件就是咱们需要的,为了保险,还是拷贝⼀下,做个备份。
四、配置redis.conf配置⽂件修改redis.conf配置⽂件:主要配置的如下:bind 127.0.0.1 #注释掉这部分,使redis可以外部访问daemonize no#⽤守护线程的⽅式启动requirepass 你的密码#给redis设置密码appendonly yes#redis持久化 默认是notcp-keepalive 300 #防⽌出现远程主机强迫关闭了⼀个现有的连接的错误默认是300五、创建本地与docker映射的⽬录,即本地存放的位置创建本地存放redis的位置;可以⾃定义,因为我的docker的⼀些配置⽂件都是存放在/data⽬录下⾯的,所以我依然在/data⽬录下创建⼀个redis⽬录,这样是为了⽅便后期管理truedei@truedei:redis-5.0.5$ sudo cp -p redis.conf /data/redis/truedei@truedei:redis-5.0.5$把配置⽂件拷贝到刚才创建好的⽂件⾥因为我本⾝就是Linux操作系统,所以我可以直接拷贝过去,如果你是windows的话,可能需要使⽤ftp拷贝过去,或者直接复制内容,然后粘贴过去。
redis连接参数
redis连接参数Redis是一款非常流行的开源内存数据库。
它支持多种数据结构,并提供了非常快速的读写性能。
Redis不仅可以缓存数据,还可以用于消息队列、计数器、分布式锁等场景。
在使用Redis时,需要设置连接参数来保证安全性、性能和可靠性。
本文将详细介绍Redis连接参数,帮助您更好地理解Redis。
安全性参数1. requirepass密码:Redis通过密码验证来保证连接的安全性。
在redis.conf配置文件中可以设置requirepass选项,如:requirepass yourpassword这样,每次客户端连接Redis时都必须提供正确的密码才能进行操作。
这可以有效保护Redis的数据安全性。
2. bind地址:bind选项用于设置Redis服务端所监听的网络地址。
如果设置为127.0.0.1表示只能通过本地访问,其他网络无法访问,这也可以提高Redis的安全性。
如:bind 127.0.0.13. protected-mode模式:protected-mode模式是Redis默认的安全模式,当它被启用时,只允许来自本地或受信任网络的客户端连接。
如果你要使用外部客户端连接Redis,请把protected-mode设置为no。
1. maxmemory内存限制:Redis主要是基于内存进行存储,可以用maxmemory参数来设置最大可用内存大小,如:maxmemory 1gb这里设置最大可用内存为1GB。
2. maxmemory-policy策略:当Redis的内存使用达到上述maxmemory限制时,需要一种关于如何删除数据的策略。
其中最简单的是 noeviction 策略,它表示不会发生任何删除操作,而是会返回错误信息。
Redis还提供了多种其他策略选项,例如:allkeys-lru表示删除使用LRU算法的最少使用key,volatile-lru表示在过期交集中删除最少使用的key来腾出空间,volatile-ttl表示在过期交集中删除最少使用key的时间戳。
redis tls参数
在Redis中,可以通过配置文件来启用TLS,并设置相关的参数。
以下是一些常见的TLS参数及其说明:
1.tls-cluster:用于启用集群模式的TLS。
默认情况下,只有TLSv1.2和TLSv1.3被启用。
可以明确指定要支持的TLS版本,例如"TLSv1.2
TLSv1.3"。
2.tls-protocols:用于指定要支持的TLS协议。
例如,"TLSv1.2 TLSv1.3"。
3.tls-ciphers:用于配置允许的密码套件。
可以指定具体的密码套件,也可以使用默认值。
4.tls-certfile和tls-keyfile:用于指定服务器的证书文件和私钥文件。
这些文件用于验证服务器的身份。
5.tls-ca-certs:用于指定信任的CA证书列表。
这些证书用于验证客户端的证书。
除了上述参数外,还可以配置其他与TLS相关的参数,具体取决于Redis的版本和配置要求。
请注意,启用TLS需要正确配置证书和私钥,并确保服务器和客户端都支持相同的TLS协议和密码套件。
详解springboot中各个版本的redis配置问题
详解springboot中各个版本的redis配置问题今天在springboot中使⽤数据库,springboot版本为2.0.2.RELEASE,通过pom引⼊jar包,配置⽂件application.properties中的redis配置⽂件报错,提⽰例如deprecated configuration property 'spring.redis.pool.max-active',猜想应该是版本不对,发现springboot在1.4前后集成redis发⽣了⼀些变化。
下⾯截图看下。
⼀、不同版本RedisProperties的区别这是springboot版本为1.3.2RELEASE中的RedisProperties配置⽂件类,从图⽚中可以看得出来该本的redis配置⽂件属性有两个内部静态类分别是Pool和Sentinel,七个属性变量。
例如我们想在配置⽂件中设置redis数据库host地址,则可以这样写spring.redis.host=localhost host为属性,配置连接池的最⼤连接数 spring.redis.pool.max-active=8这个是redis在application.properties中springboot低版本的配置# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=localhost# Redis服务器连接端⼝spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最⼤连接数(使⽤负值表⽰没有限制)spring.redis.pool.max-active=8# 连接池最⼤阻塞等待时间(使⽤负值表⽰没有限制)spring.redis.pool.max-wait=-1# 连接池中的最⼤空闲连接spring.redis.pool.max-idle=8# 连接池中的最⼩空闲连接spring.redis.pool.min-idle=0# 连接超时时间(毫秒)spring.redis.timeout=0下图则是springboot版本为2.0.2RELEASE中的RedisProperties配置⽂件类,从图中可知pool属性则被封装到了内部静态类Jedis和Lettuce中去了,这时我们要是配置连接池的最⼤连接数,前缀还是spring.redis,有两种途径spring.redis.jedis.pool.max-active=8 或者 spring.redis.lettuce.pool.max-active=8这个是redis在application.properties中springboot⾼版本的配置# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=localhost# Redis服务器连接端⼝spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最⼤连接数(使⽤负值表⽰没有限制)spring.redis.jedis.pool.max-active=8# 连接池最⼤阻塞等待时间(使⽤负值表⽰没有限制)spring.redis.jedis.pool.max-wait=-1# 连接池中的最⼤空闲连接spring.redis.jedis.pool.max-idle=8# 连接池中的最⼩空闲连接spring.redis.jedis.pool.min-idle=0# 连接超时时间(毫秒)spring.redis.timeout=0⼆、maven下pom中的坐标配置springboot版本1.4以下<!--引⼊ spring-boot-starter-redis(1.4版本前)--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId><version>1.3.2.RELEASE</version></dependency>springboot版本1.4以上<!--引⼊ spring-boot-starter-data-redis(1.4版本后)多了个data加个红和粗吧--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>到此这篇关于详解springboot中各个版本的redis配置问题的⽂章就介绍到这了,更多相关springboot各个版本redis配置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
解决创建Redis容器没有conf配置文件
解决创建Redis容器没有conf配置⽂件序⾔这篇⽂章没有什么知识点,只是为了新伙伴少踩点坑1. 问题重现创建容器2. 解读参数-d: 后台运⾏容器,并返回容器ID;-i: 以交互模式运⾏容器,通常与 -t 同时使⽤;-p: 端⼝映射,格式为:主机(宿主)端⼝:容器端⼝-t: 为容器重新分配⼀个伪输⼊终端,通常与 -i 同时使⽤;--ip: 为容器制定⼀个固定的ip--net: 指定⽹络模式3. 进⼊容器查看redis.conf⽂件发现是并没有redis.conf⽂件的,那么这个时候就是新⼿踩坑阶段了,因为没有系统的学习docker所以会花费很多时间2. 解决问题没有配置⽂件这件事呢!那是因为redis容器⾥边的配置⽂件是需要在创建容器时映射进来的那么就需要删除我们之前创建好的容器,在删除前需要先停⽌容器后才可以删除停⽌容器:docker container stop redis-test删除容器:docker container rm redis-test1. 开始重新创建redis容器docker run -itd --name redis-slave -v /usr/local/redis/redis.conf:/etc/redis.conf -v /root/usr/local/redis/data:/data --net mynetwork -p 6381:6379 --ip 172.10.0.3 redis参数解释:-v /usr/local/redis/redis.conf:/etc/redis.conf:映射配置⽂件-v /root/usr/local/redis/data:/data:映射数据⽬录那么这个时候就有redis配置⽂件了3. 搭建容器并挂载外部配置上边是在我宿主机有redis的情况下的,那么下来说宿主机没有redis的情况这⾥说的映射其实就是挂载外部配置和数据安装1. 创建docker统⼀的外部配置⽂件mkdir -p docker/redis/2. 在conf⽬录创建redis.conf的配置⽂件touch /docker/redis/conf/redis.conf3. redis.conf⽂件的内容需要⾃⾏去下载,⽹上很多4. 创建启动容器,加载配置⽂件并持久化数据docker run -d --privileged=true -p 6379:6379 -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data --name redis-test redis redis-server /etc/redis/redis.conf --appendonly yes参数说明:--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通⽤户权限-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf:映射配置⽂件-v /docker/redis/data:/data:映射数据⽬录redis-server /etc/redis/redis.conf:指定配置⽂件启动redis-server进程--appendonly yes:开启数据持久化。
lettuce 参数
lettuce 参数Lettuce参数Lettuce是一个Python实现的Redis客户端,它提供了丰富的功能和灵活的配置选项。
在使用Lettuce时,我们需要了解一些常用的参数以及它们的作用。
连接参数1. hosthost参数指定Redis服务器的主机名或IP地址。
默认值为localhost。
2. portport参数指定Redis服务器监听的端口号。
默认值为6379。
3. passwordpassword参数指定连接Redis服务器所需的密码。
如果Redis服务器没有设置密码,则不需要该参数。
4. dbdb参数指定要连接到哪个数据库。
默认值为0,表示连接到第一个数据库。
5. socket_timeoutsocket_timeout参数指定与Redis服务器建立连接时,等待响应的超时时间(秒)。
默认值为None,表示无限制等待。
6. socket_connect_timeoutsocket_connect_timeout参数指定与Redis服务器建立连接时,等待连接成功的超时时间(秒)。
默认值为10秒。
7. retry_on_timeoutretry_on_timeout参数指定是否在超时后自动重试。
默认值为False,表示不重试。
8. max_connectionsmax_connections参数指定最大同时打开连接数。
默认值为50。
9. sslssl参数指示是否使用SSL/TLS加密传输数据。
默认值为False,表示不加密传输数据。
命令执行参数1. decode_responsesdecode_responses参数指示是否将返回结果解码成字符串类型而非字节类型。
默认值为False,表示返回结果是字节类型。
2. transactiontransaction参数指示是否启用事务模式。
默认值为False,表示不启用事务模式。
3. pipelinepipeline参数指示是否启用管道模式。
默认值为False,表示不启用管道模式。
Redis哨兵模式的配置
Redis哨兵模式的配置绪论现有三台设备,192.168.137.11、192.168.137.12和192.168.137.13,要求在三台设备上实现redis哨兵模式,其中192.168.137.11为master,其他两台为slave。
1、在Master上配置redis.conf⽂件配置⽂件内容如下:protected-mode no (关闭保护模式)port 6379daemonize yes (设置redis在后台启动)pidfile /var/run/redis_6379.pidlogfile "/opt/module/redis/6379/logs/redis_6379.log" (设置⽇志⽂件的存放位置)dbfilename dump_6379.rdb (设置dump⽂件名)dir "/opt/module/redis/6379" (设置dump⽂件和nodes⽂件的存放位置)masterauth bigdata (设置集群节点间访问密码,跟上⾯⼀致)requirepass bigdata (设置redis访问密码)# bind 127.0.0.1 注释掉该项2.启动redis,并配置另外两台设备为slave分别启动三台设备上的redis,然后使⽤redis-cli在192.168.137.12和192.168.137.13分别执⾏如下命令,表⽰以192.168.137.11为masterslaveof 192.168.137.11 6379 查看配置 info replication可以发现master已经启动3.配置哨兵抽取redis压缩⽂件下的sentinel.conf⽂件到/opt/module/redis/(存放redis配置⽂件)下修改配置如下:sentinel monitor hadoop-101 192.168.137.11 6379 1上⾯最后⼀个数字1,表⽰主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机将上⾯的配置同步到其他两台机器上,并且修改Ip为被同步机器的IP。
Redis配置详解
Redis配置详解我们说 Redis 相对于 Memcache 等其他的缓存产品,有⼀个⽐较明显的优势就是 Redis 不仅仅⽀持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
本篇博客我们就将介绍这些数据类型的详细使⽤以及顺带介绍Redis系统的相关命令⽤法。
注意:Redis的命令不区分⼤⼩写,但是key 严格区分⼤⼩写0、写在前⾯ 下⾯介绍的Redis命令有很多,如果你想通过死记硬背来记住这些命令⼏乎不可能,但是如果理解了Redis的⼀些机制,这些命令其实是由很强的通⽤性的,通过理解来记忆是最好的。
另外,每种数据类型都有其适合的使⽤场景,我也会在⽂中给与说明,如果滥⽤,反⽽会适得其反。
1、string 数据类型 string 是Redis的最基本的数据类型,可以理解为与 Memcached ⼀模⼀样的类型,⼀个key 对应⼀个 value。
string 类型是⼆进制安全的,意思是 Redis 的 string 可以包含任何数据,⽐如图⽚或者序列化的对象,⼀个 redis 中字符串 value 最多可以是 512M。
①、相关命令介绍 string 数据类型在 Redis 中的相关命令: PS: ①、上⾯的 ttl 命令是返回 key 的剩余过期时间,单位为秒。
②、mset和mget这种批量处理命令,能够极⼤的提⾼操作效率。
因为⼀次命令执⾏所需要的时间=1次⽹络传输时间+1次命令执⾏时间,n个命令耗时=n次⽹络传输时间+n次命令执⾏时间,⽽批量处理命令会将n次⽹络时间缩减为1次⽹络时间,也就是1次⽹络传输时间+n 次命令处理时间。
但是需要注意的是,Redis是单线程的,如果⼀次批量处理命令过多,会造成Redis阻塞或⽹络拥塞(传输数据量⼤)。
③、setnx可以⽤于实现分布式锁,具体实现⽅式后⾯会介绍。
上⾯是 string 类型的基本命令,下⾯介绍⼏个⾃增⾃减操作,这在实际⼯作中还是特别有⽤的(分布式环境中统计系统的在线⼈数,利⽤Redis的⾼性能读写,在Redis中完成秒杀,⽽不是直接操作数据库。
redis集群配置参数及优化
Redis集群配置参数及优化Redis的主要参数配置在redis.conf文件中。
1.conf内存值2.bindip默认情况下,如果没有指定“bind”配置指令,Redis将侦听服务器上可用的所有网络接口的连接。
默认情况:bind127.0.0.1实际配置:bind本机ip3.protected-modeyes启用默认保护模式。
只有当您确定您希望其他主机的客户端连接到Redis 时,您才应该禁用它,即使没有配置身份验证,也没有使用“bind”指令显式列出特定的接口集。
4.tcp-keepalive300如果非零,请使用SO_KEEPALIVE向没有通信的客户发送TCP协议。
这很有用,有两个原因:a)检测死同伴b)从中间的网络设备的角度进行连接在Linux上,指定的值(以秒为单位)是用于发送ack的周期。
注意,要关闭连接,需要双倍的时间。
这个选项的合理值是300秒,这是新的Redis默认值,从Redis3.2.1开始。
5.timeout0在客户机空闲N秒后关闭连接(0到禁用)6.port6379在指定端口上接受连接,默认值是63797.daemonizeyesredis后台运行8.pidfile/var/run/redis_6379.pid如果指定了一个pid文件,Redis会在启动时指定,并在退出时删除它。
当服务器运行非守护进程时,如果配置中没有指定pid文件,则不会创建pid文件。
当服务器被守护时,即使没有指定,也会使用pid文件,默认为“/var/run/redis.pid”。
创建一个pid文件是最好的工作:如果Redis不能创建它,那么服务器就会正常启动和运行。
9.loglevelnotice指定服务器冗余级别包括:a)debug:大量信息,用于开发/测试b)verbose:许多很少有用的信息,但不像debug级别那样混乱c)notice:适度详细,可能在生产中需要d)warning:只有非常重要/关键的消息被记录10.logfile""指定日志文件名。
docker安装redis并以配置文件方式启动详解
docker安装redis并以配置⽂件⽅式启动详解更新最近发现服务器被挖矿病毒⼊侵了很有可能是因为redis没有设置密码的原因!1.获取redis镜像docker pull redis指定版本号:docker pull redis:4.0.9不加版本号默认获取最新版本,也可以使⽤ docker search redis查看镜像来源2.查看本地镜像docker images3.然后启动容器,做映射①创建配置⽂件⽬录存放redis.conf,⽂件从。
②创建⽂件夹,新建配置⽂件贴⼊从官⽹下载的配置⽂件并修改mkdir /usr/local/dockervi /usr/local/docker/redis.conf③修改启动默认配置(从上⾄下依次):bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问protected-mode no #默认yes,开启保护模式,限制为本地访问daemonize no#默认no,改为yes意为以守护进程⽅式启动,可后台运⾏,除⾮kill进程,改为yes会使配置⽂件⽅式启动redis失败databases 16 #数据库个数(可选),我修改了这个只是查看是否⽣效。
dir ./ #输⼊本地redis数据库存放⽂件夹(可选)appendonly yes #redis持久化(可选)4.docker启动redis命令docker run -p 6379:6379 --name myredis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 命令解释说明:-p 6379:6379 端⼝映射:前表⽰主机部分,:后表⽰容器部分。
Redis及其Sentinel配置项详细说明
13.dir ./
指定本地数据库存放目录
14. slaveof <masterip> <masterport>
设置当本机为slave服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
15.slave-serve-stable-data yes
11.rdbcompression yes
指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
12.dbfilename dump.rdb
指定本地数据库文件名,默认值为dump.rdb
3.port 6379
指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
4.bind 127.0.0.1
绑定的主机地址
maxmemory-policy (noeviction | allkeys-lru | volatile-lru | allkeys-random | volatile-random | volatile-ttl)
当内存到达阀值时redis对于会增加内存的命令的处理策略:
noeviction:返回错误
设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过masterauth提供密码,默认关闭
27 maxclients 128
设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
redis常用命令常见错误配置技巧等分享
redis常用命令常见错误配置技巧等分享redis常用命令、常见错误、配置技巧等分享1.redis查看当前所有的key激活代码代码如下:keys*2.查看当前redis的配置信息复制代码代码如下:configget*强制停止redis快照导致,redis运行用户没有权限写rdb文件或者磁盘空间满了,解决办法:激活代码代码如下:configsetstop-writes-on-bgsave-errorno例如:复制代码代码如下:set'name''shenhui'configsetstop-writes-on-bgsave-errorno+okset'name''shenhui'+ok4.redis127.0.0.1:6379>configsetlogfile\(error)errunsupportedconfigparameter:lo gfilelogfile无法通过set动态设置默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。
如果不设置maxmemory或者设置为064十一位系统不管制内存,32十一位系统最多采用3gb内存。
volatile-lru->根据lru算法生成的过期时间来删除。
allkeys-lru->根据lru算法删除任何key。
volatile-random->根据过期设置来随机删除key。
allkeys->random->无差别随机删。
volatile-ttl->根据最近过期时间去删掉(配以ttl)noeviction->谁也假使,轻易在写下操作方式时回到错误。
6.reids日志位置logfile日志记录方式,默认值为stdout,如果设置为stdout且以守护者进程方式运转,那么日志可以被重定向至/dev/null,也就是谅日志。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#
# maxmemory-samples 3
############################## AOF ###############################
# 默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失。
p区
#
# maxmemory的设置比较适合于把redis当作于类似memcached的缓存来使用,而不适合当做一个真实的DB。
# 当把Redis当做一个真实的数据库使用的时候,内存使用将是一个很大的开销
# maxmemory <bytes>
#
# slaveof <masterip> <masterport>
# 当master服务设置了密码保护时(用requirepass制定的密码)
# slav服务连接master的密码
#
# masterauth <master-password>
# 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
# 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,
# 如果设置 maxclients 0,表示不作限制。
# 当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
# 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解
#
# requirepass foobared
# 命令重命名.
#
# 在一个共享环境下可以重命名相对危险的命令。比如把CONFIG重名为一个不容易猜测的字符。
#
# AOF文件也会存放在这个目录下面
#
# 注意这里必须制定一个目录而不是文件
dir ./
################################# 复制 #################################
# 主从复制. 设置该数据库为其他数据库的从数据库.
# 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
#
# 保存数据到磁盘,格式如下:
#
# save <seconds> <changes>
#
# 指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。
# 相当于条件触发抓取快照,这个可以多个条件配合
#
# 比如默认配置文件中的设置,就设置了三个条件
#
# save 900 1 900秒内至少有1个key被改变
# Redis 配置文件
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
loglevel debug
# 配置log文件地址
# 默认值为stdout,标准输出,若后台模式会输出到/dev/null
#logfile stdout
logfile /var/log/redis/redis.log
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB
# daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes
daemonize yes
# on a unix socket when not specified.
#
# unixsocket /tmp/redis.sock
# unixsocketperm 755
# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接
# 0是关闭此设置
timeout 0
#
# 举例:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# 如果想删除一个命令,直接把它重命名为一个空字符""即可,如下:
#
# rename-command CONFIG ""
################################### 约束 ####################################
#
# 写命令包括: set setnx setex append
# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
#
# 1) 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求
#
# 2) 如果slave-serve-stale-data是指为no,出去INFO和SLAVOF命令之外的任何请求都会返回一个
# 错误"SYNC with master in progress"
# save 300 10 300秒内至少有300个key被改变
# save 60 10000 60秒内至少有10000个key被改变
save 900 1
save 300 10
save 60 10000
# 存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes
rdbcompression yes
# 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。
# 当运行多个redis服务时,需要指定不同的pid文件和端口
pidfile /var/run/redis.pid
# 指定redis运行的端口,默认是6379
port 6379
# 当内存达到最大值的时候Redis会选择删除哪些数据?有五种方式可供选择
#
# volatile-lru -> 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )
# allkeys-lru -> 利用LRU算法移除任何key
# volatile-random -> 移除设置过过期时间的随机key
# and optionally update the other syslog parameters to suit your needs.
# syslog-enabled no
# Specify the syslog identity.
# syslog-ident redis
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# 指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求,
# 在生产环境中最好设置该项
# bind 127.0.0.1
# Specify the path for the unix socket that will be used to listen for
# incoming connections. There is no default, so Redis will not listen
# 本地持久化数据库文件名,默认值为dump.rdb
dbfilename dump.rdb
# 工作目录
#
# 数据库镜像备份的文件放置的路径。
# 这里的路径跟文件名要分开配置是因为redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,
# 再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。
#
slave-serve-stale-data yes
# 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒
#
# repl-ping-slave-period 10
# repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒
# 所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。
# 开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
# 但是这样会造成appendonly.aof文件过大,所以redis还支持了BGREWRITEAOF指令,对appendonly.aof 进行重新整理。