当前位置:   article > 正文

redis缓存数据库详解(一):config文件详解_数据区里的config

数据区里的config

作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)

1.redis是什么?

1.redis是一种可以高效存取的数据库,支持多种数据结构,比如字符串、集合、hash等等。
2.redis是把数据存放在内存里,从而使得数据的读写都是发生在内存里,速度十分的快,然后通过一定的机制持久化到磁盘。
3.虽然redis被叫做数据库,但是与mysql这种关系型数据库不同,redis的读写不是通过sql,而是通过其独有的方法设置的,所以redis也被成为是nosql数据库,还有许多nosql数据库,比如mongodb,memcached等等。
4.业务场景里有很多可以使用redis,比如点赞数,关注列表,粉丝列表等热点数据,还可以用来做分布式锁。

2.redis配置文件介绍

这里就跳过下载,可以自行去redis官网下载,下载后直接解压就可以了。
redis的配置文件是redis.config,打开配置文件,可以看到以下密密麻麻的属性值

################################# GENERAL #####################################

# 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。
# 当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。
daemonize no

# 当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,
# 但是你可以在这里自己制定它的文件位置。
pidfile /var/run/redis_6379.pid

# 定义日志级别。
# 可以是下面的这些值:
# debug (适用于开发或测试阶段)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (适用于生产环境)
# warning (仅仅一些重要的消息被记录)
loglevel notice

# 指定日志文件的位置
logfile ""

# 要想把日志记录到系统日志,就把它改成 yes,
# 也可以可选择性的更新其他的syslog 参数以达到你的要求
# syslog-enabled no

# 设置 syslog 的 identity。
# syslog-ident redis

# 设置 syslog 的 facility,必须是 USER 或者是 LOCAL0-LOCAL7 之间的值。
# syslog-facility local0

# 设置数据库的数目。
# 默认数据库是 DB 0,你可以在每个连接上使用 select <dbid> 命令选择一个不同的数据库,
# 但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值
databases 16

################################## NETWORK #####################################

# 默认情况下,redis 在 server 上所有有效的网络接口上监听客户端连接。
# 你如果只想让它在一个网络接口上监听,那你就绑定一个IP或者多个IP。
#
# 示例,多个IP用空格隔开:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1
bind 0.0.0.0

# 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
port 6379

# TCP 监听的最大容纳数量
#
# 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。
# Linux 内核会一声不响的把这个值缩小成 /proc/sys/net/core/somaxconn 对应的值,
# 所以你要修改这两个值somaxconn and tcp_max_syn_backlog才能达到你的预期。
tcp-backlog 511

# 指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)
timeout 0

################################ SNAPSHOTTING  ################################
#
# 存 DB 到磁盘:
#
#   格式:save <间隔时间(秒)> <写入次数>
#
#   根据给定的时间间隔和写入次数将数据保存到磁盘
#
#   下面的例子的意思是:
#   900 秒内如果至少有 1 个 key 的值变化,则保存
#   300 秒内如果至少有 10 个 key 的值变化,则保存
#   60 秒内如果至少有 10000 个 key 的值变化,则保存
#  
#   注意:你可以注释掉所有的 save 行来停用保存功能。
#   也可以直接一个空字符串来实现停用:
#   save ""

save 900 1
save 300 10
save 60 10000

# 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,
# 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,
# 否则就会没人注意到灾难的发生。
#
# 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。
#
# 然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
stop-writes-on-bgsave-error yes

# 是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串
# 默认都设为 yes
# 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,
# 不过这个数据集可能就会比较大
rdbcompression yes

# 是否校验rdb文件
rdbchecksum yes

# 设置 dump 的文件位置
dbfilename dump.rdb

# 工作目录
# 例如上面的 dbfilename 只指定了文件名,
# 但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名。
dir ./

################################## SECURITY ###################################

# 设置redis的连接密码,默认是没有密码的,但是实际中是需要设置的
# requirepass foobared

################################### CLIENTS ####################################

# 设置同时连接的最大客户端数。默认情况下此限制设置为10000个客户端
# 一旦达到最大限制,redis 将关闭所有的新连接
# 并发送一个‘max number of clients reached’的错误。
# maxclients 10000

############################## MEMORY MANAGEMENT ################################

# 如果你设置了这个值,当缓存的数据容量达到这个值, redis 将根据你选择的
# eviction 策略来移除一些 keys。
# 如果 redis 不能根据策略移除 keys ,或者是策略被设置为 ‘noeviction’,
# redis 将开始响应错误给命令,如 set,lpush 等等,
# 并继续响应只读的命令,如 get
# maxmemory <bytes>

############################## APPEND ONLY MODE ###############################

# 默认情况下,Redis在磁盘上异步转储数据集。这个模式是在很多应用程序中都足够好,但是Redis进程
#有问题,或者断电可能会导致几分钟的写操作丢失(取决于配置的保存点)。Append Only文件是另一种
#持久性模式,它提供更耐用。例如,使用默认的数据fsync策略(请参阅后面的配置文件)Redis在戏剧
#性的事件,比如服务器断电,或者如果发生了什么事情Redis进程本身会出错,但操作系统是仍然正常运
#行。可以同时启用AOFRDB持久性,而不会出现问题。如果在启动时启用了AOF,Redis将加载AOF,即
#文件有更好的耐久性保证。
appendonly no

# 设置存放aof的文件名
appendfilename "appendonly.aof"

# 配置aof持久化数据策略,
# always:每次有数据修改发生时都会写入AOF文件(安全但是费时)
# everysec:每秒钟同步一次,该策略为AOF的缺省策略。
# no:从不同步。高效但是数据不会被持久化。
# appendfsync always
appendfsync everysec
# appendfsync no

# 主进程写入aof文件和当aof文件过大,自动重写两者都发生的时候,因为重写是把旧的文件重新
#写到新的文件中,涉及大量的磁盘操作,就会阻塞主线程的读写,该参数设为yes就是不同步数据,
#这样就可以保证redis的读写没有延迟,但可能会出现数据丢失的情况;设置为no就是当上述情况
#发生会有一点延迟,不过不会出现丢失数据的情况。
no-appendfsync-on-rewrite no

# 设置aof文件重写的条件
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

#aof文件有时会出现末尾被截断的情况,设置该参数为yes表示当启动redis加载aof文件时,不会报错,会一直加载到被截断的位置的所有数据到内存,设为no就是不能启动redis,必须使用“redis check AOF”实用程序修复AOF文件
aof-load-truncated yes

# When rewriting the AOF file, Redis is able to use an RDB preamble in the
# AOF file for faster rewrites and recoveries. When this option is turned
# on the rewritten AOF file is composed of two different stanzas:
#
#   [RDB file][AOF tail]
#
# When loading Redis recognizes that the AOF file starts with the "REDIS"
# string and loads the prefixed RDB file, and continues loading the AOF
# tail.
aof-use-rdb-preamble yes


############################### LUA SCRIPTING  ###############################

# lua脚本执行的最长时间,其设置为0或负值,以便在没有警告的情况下无限执行。
lua-time-limit 5000

################################ REDIS CLUSTER  ###############################

# 普通的Redis实例不能是Redis集群的一部分;需要将redis加入集群可以开启该属性
# cluster-enabled yes

# 每个群集节点都有一个群集配置文件。这个文件不是打算手工编辑。它由Redis节点创建和更新。
#每个Redis集群节点都需要不同的集群配置文件。确保在同一系统中运行的实例没有重叠的群集配置文件名。
# cluster-config-file nodes-6379.conf

# 节点多久没被连上将其设定为失效状态
# cluster-node-timeout 15000

# 当主节点出现故障时,设置副本节点进行故障转移的有效因子
# 为了获得最大的可用性,可以设置副本有效性因子值为0,这意味着副本将始终尝试故障转移不管他们最后一次和主人互动。
#零是唯一能够保证当所有分区恢复时群集将始终能够继续。
# cluster-replica-validity-factor 10

# Cluster replicas are able to migrate to orphaned masters, that are masters
# that are left without working replicas. This improves the cluster ability
# to resist to failures as otherwise an orphaned master can't be failed over
# in case of failure if it has no working replicas.
#
# Replicas migrate to orphaned masters only if there are still at least a
# given number of other working replicas for their old master. This number
# is the "migration barrier". A migration barrier of 1 means that a replica
# will migrate only if there is at least 1 other working replica for its master
# and so forth. It usually reflects the number of replicas you want for every
# master in your cluster.
#
# Default is 1 (replicas migrate only if their masters remain with at least
# one replica). To disable migration just set it to a very large value.
# A value of 0 can be set but is useful only for debugging and dangerous
# in production.
#
# cluster-migration-barrier 1

# By default Redis Cluster nodes stop accepting queries if they detect there
# is at least an hash slot uncovered (no available node is serving it).
# This way if the cluster is partially down (for example a range of hash slots
# are no longer covered) all the cluster becomes, eventually, unavailable.
# It automatically returns available as soon as all the slots are covered again.
#
# However sometimes you want the subset of the cluster which is working,
# to continue to accept queries for the part of the key space that is still
# covered. In order to do so, just set the cluster-require-full-coverage
# option to no.
#
# cluster-require-full-coverage yes

# 如果将此选项设置为“是”,则会阻止副本尝试对其进行故障转移
# cluster-replica-no-failover no

################################## SLOW LOG ###################################

# 慢日志时间设置,执行时间超过的会记录到慢日志中
slowlog-max-len 128
################################ LATENCY MONITOR ##############################

# Redis延迟监控子系统对不同的操作进行采样在运行时,以便收集与Redis实例的延迟。
# 默认情况下,延迟监视被禁用,因为大多数情况下不需要它
latency-monitor-threshold 0

############################# LAZY FREEING ####################################

# redis的删除有两种,一种是阻塞的,另一种是非阻塞的。默认的是阻塞的,del。在使用del删除数据时,服务器会把与之相关的都删除掉,这段时间是阻塞的,如果关联的数据很多可能会需要几秒的时间;非阻塞的有UNLINK等。
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249

3.redis的客户端和服务端

安装好后,进入解压后的目录,然后使用redis-server命令启动redis,启动后服务端就会显示以下的信息:注意:如果修改了配置文件,启动时一定要指定配置文件,不然修改的配置都不起效,redis-server redis.conf
在这里插入图片描述
然后再另外打开一个连接终端,输入redis-cli,连接刚才启动好的redis:
在这里插入图片描述

下一篇将会介绍redis的数据结构以及对应的命令。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/591357
推荐阅读
相关标签
  

闽ICP备14008679号