持久化的意思就是保存,保存到硬盘。第一次接触这个词是在几年前学习EF。

 

为什么要持久化

redis定义:Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

可以看出redis是一个内存的数据库,但是如果redis服务停止,不就数据丢失了,所以他需要一套把内存数据保存到硬盘上的机制,其实redis服务重启的时候,他也会重新把硬盘上的数据读取到内存中。redis提供了两种持久化机制,快照(因为后缀为rdb,所以快照也叫做rdb)和aof。

RDB

什么是RDB    

就是SNAPSHOTTING快照模式,分时间间隔把内存中的数据以二进制的形式写入硬盘中的一个.rdb后缀名的文件中(point-in-time snapshot)。这是redis默认的持久化方式。(rdb英文是redis database 缩写)

配置RDB

################################ SNAPSHOTTING  ################################
#
# Save the DB on disk:
#
#   save <seconds> <changes>
#
#   Will save the DB if both the given number of seconds and the given
#   number of write operations against 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 completely by commenting out all "save" lines.
#
#   It is also possible to remove all the previously configured save
#   points by adding a save directive with a single empty string argument
#   like in the following example:
#
#   save ""

save 900 1
save 300 10
save 60 10000

# By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed.
# This will make the user aware (in a hard way) that data is not persisting
# on disk properly, otherwise chances are that no one will notice and some
# disaster will happen.
#
# If the background saving process will start working again Redis will
# automatically allow writes again.
#
# However if you have setup your proper monitoring of the Redis server
# and persistence, you may want to disable this feature so that Redis will
# continue to work as usual even if there are problems with disk,
# permissions, and so forth.
stop-writes-on-bgsave-error yes

# Compress string objects using LZF when dump .rdb databases?
# For default that's set to 'yes' as it's almost always a win.
# If you want to save some CPU in the saving child set it to 'no' but
# the dataset will likely be bigger if you have compressible values or keys.
rdbcompression yes

# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
# This makes the format more resistant to corruption but there is a performance
# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
# for maximum performances.
#
# RDB files created with checksum disabled have a checksum of zero that will
# tell the loading code to skip the check.
rdbchecksum yes

# The filename where to dump the DB
dbfilename dump.rdb

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir ./
SNAPSHOTTING

相关文章:

  • 2022-12-23
  • 2021-12-06
  • 2021-07-30
  • 2021-12-26
  • 2021-10-17
  • 2021-07-01
  • 2021-12-06
  • 2022-01-01
猜你喜欢
  • 2021-10-15
  • 2021-08-18
  • 2021-10-05
  • 2021-05-27
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案