Redis缓存文件储存在何处(redis缓存文件在哪里)
Redis缓存文件储存在何处?
在使用Redis作为缓存解决方案时,我们都知道Redis会把缓存数据放入内存中。不过,当缓存数据过多时,Redis无法承受缓存数据全部放在内存中,这时就需要将一部分缓存数据放到磁盘中。那么,Redis缓存文件储存在何处呢?
Redis缓存文件的存储位置是由Redis.conf配置文件的“dir”属性所决定的。如果Redis.conf配置文件中没有设置“dir”属性,那么Redis会将缓存文件保存在Redis所处的目录下。
Redis.conf配置文件中一般会设置以下三个属性:
1. bind
这个属性指定Redis绑定的IP地址。如果这个属性没有被设置,那么Redis默认会监听所有的IP地址。
2. port
这个属性指定Redis监听的端口。默认端口是6379。
3. dir
这个属性指定Redis所用到的文件目录。当Redis需要将缓存数据写入磁盘时,就会将缓存数据存储在“dir”所指定的目录中。
以下是Redis.conf配置文件的部分示例:
bind 127.0.0.1 //指定Redis绑定的IP地址
port 6379 //指定Redis监听的端口
dir /var/lib/redis/ //指定Redis缓存文件存储的目录
上面的示例中,“dir”属性将Redis缓存文件存储在了“/var/lib/redis/”目录下。这个目录需要能够被Redis所运行的用户所访问,否则Redis将无法将缓存数据写入磁盘。
此外,还有一个相关的属性“dbfilename”,这个属性用于指定Redis缓存文件的文件名。如果“dbfilename”属性没有被设置,默认的文件名是“dump.rdb”。
以下是Redis.conf配置文件的完整示例:
# Redis configuration file example
#
# Note that in order to read the configuration file, Redis must be
# started with the file path as first argument:
#
# ./redis-server /path/to/redis.conf
# Note on units: when memory size is needed, it is possible to specify
# it in the usual form of 1k 5GB 4M and so forth:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
################################## INCLUDES ###################################
# Include one or more other config files here. This is useful if you
# have a standard template for Redis configuration files or you wish
# to store your Redis configuration files in a different directory
# (e.g. /etc/redis/redis.conf).
#
# Notice option “include” won’t be rewritten by command “CONFIG REWRITE”
# from admin or Redis Sentinel. Since Redis always uses the last processed
# configuration file, you are safe if the include is put at the
# beginning or somewhere else in the middle of the configuration file.
#
# include /path/to/local.conf
# include /path/to/other.conf
################################# MODULES ######################################
# Load modules at startup. If the server is not able to load modules
# it will abort. It is possible to use multiple loadmodule directives.
#
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so
################################## NETWORK ####################################
# By default Redis listens for connections from all the network interfaces
# avlable on the server. It is possible to listen to just one or multiple
# interfaces using the “bind” configuration directive, followed by one or
# more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 loopback interface at 127.0.0.1 which is safer to use
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
bind 127.0.0.1
# Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited.
#
# When protected mode is on Redis only accepts connections from “127.0.0.1”
# (IPv4 and IPv6), and from Unix domn sockets.
#
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the “bind” directive.
protected-mode yes
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
# TCP listen() backlog.
#
# In high requests-per-second environments you need an high backlog in order
# to avoid slow clients connections issues. Note that the Linux kernel
# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
# make sure to rse both the value of somaxconn and tcp_max_syn_backlog
# in order to get the desired effect.
tcp-backlog 511
# Unix socket path.
#
# When the server is not run as root, Redis will fl to create its socket
# in /var/run/redis/redis.sock and will instead create it in /tmp/redis.sock
# unless the `unixsocket` option has been specified.
#
# Unix socket disabled by default
#
# unixsocket /tmp/redis.sock
# unixsocketperm 700
# Close the connection after a client is idle for N seconds (0 to disable)
timeout 0
# TCP keepalive.
#
# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
# of communication. This is useful for two reasons:
#
# 1) Detect dead peers.
# 2) Take the connection alive from the point of view of network
# equipment in the middle.
#
# On Linux, the specified value (in seconds) is the period used to send ACKs.
# Note that to close the connection the double of the time is needed.
# On other kernels the period depends on the kernel configuration.
#
# A reasonable value for this option is 60 seconds.
tcp-keepalive 60
################################# SECURITY ####################################
# Require clients to issue AUTH before processing any other
# commands. This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second agnst a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared
# Command renaming.
#
# It is possble to change the name of dangerous commands in a shared
# environment. For example the CONFIG command may be renamed into something
# hard to guess so that it will still be avlable for internal-use tools
# but not avlable for general clients.
#
# This is only useful if you have untrusted clients. No need to change
# this otherwise.
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
# rename-command CONFIG “”
# It is possible to completely kill a Redis server by sending it a wrong
# command line. Protect it with a password!
#
# rename-command DEBUG “”
################################### SNAPSHOTTING #####################################
# Save the DB on disk:
#
# save
#
# Will save the DB if both the given number of seconds and the given
# number of write operations agnst the DB occurred.
#
# In the example below the behaviour will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
# Note: you can disable saving at all commenting all the “save” lines.
save 900 1
save 300 10
save 60 10000
# By