Home  >  Article  >  Database  >  Redis persistence configuration (picture and text introduction)

Redis persistence configuration (picture and text introduction)

烟雨青岚
烟雨青岚forward
2020-06-17 16:40:012950browse

Redis persistence configuration (picture and text introduction)

##Persistence configuration of redis (picture and text introduction)

redis brief introduction

redis is an open source, highly available

non-relational database written in c language (NoSQL, not just a database) A key-value database.

Different from traditional databases, redis data exists in

memory, so the read and write performance is not generally high and can reach 100,000 operations per second, so it is widely used Go to the caching direction, for example: share sessions with tomcat in the website architecture, do database caching, etc.

Advantages and disadvantages of redis

Advantages

  1. The reading and writing speed is fast, the reading can reach 110000 times/s, and the writing can reach 81000 times/s. Written in C language, the code is elegant, and it is a single-threaded architecture, so the execution efficiency is high and the speed is fast

  2. Supports multiple data structures, string (string, also the most commonly used), Hash, list, set, ordered set (ZSET)


  3. Rich functions, such as: natural counter, key expiration function, Message queue, etc.

  4. Supports many client languages, supports php, java, python

  5. Supports data persistence

  6. Comes with a variety of high-availability architectures, such as: master-slave replication, sentry, high-availability cluster

Disadvantages

  1. Precisely because the data is stored in the memory, the requirements for server performance are strict. You can choose how much memory to purchase based on the business volume. It is difficult to achieve online expansion, so the first purchase requires Caution

  2. Persistence is mentioned above, what is persistence?

    Persistence supports writing data in memory to disk to prevent all data in memory from being lost if the server goes down.
How to achieve persistence

Supports two formats of persistent data AOF, RDB, and the mixed use of these two AOF&RDB

Note: When these are turned on, redis AOF is preferred for data recovery, but RDB is the default persistence method.

AOF persistence: It records every command executed by redis into a separately designated log file. When restarting or data is to be restored, the data in the log file will be restored

RDB : Just like taking a snapshot, define the snapshot period according to the save parameters defined in the configuration file, and then save it to the hard disk. A dump.rdb file will be generated.

Comparison between AOF and RDB:

1AOF files are updated more frequently than rdb, priority is given to using aof to restore

  1. aof is more secure than rdb

  2. rdb performance Better than aof, when the amount of data is large, the log recovery speed is slower than rdb

  3. When reading and writing continuously, if rdb takes a snapshot, there will be data delay and the recovered data will be incomplete

  4. Redis data structure

Data type

Storage valueCommonly used operations Command Application scenariosstringStringSET (create), GET ( View), DEL (delete), MSET (batch creation), MGET (batch view for caching, expiration time of key-value pairs, save session in redis, delete after expiration, cache user information, cache Mysql part Data, mall coupon expiration time, etc.listListRPUSH (create, add to the right if it exists), LPUSH (add to the left , LRABGE range (view range value), RPOP (delete the last one on the right), LPOP (delete the last one on the left) Generally used in combination with zset, mainly used in rankings, popularity/click rankings, and live broadcasts Ranking among the top brothers on the list, etc. hashHashHMSET object (create the key value of the object, targeting an object), HGET Object (view a parameter of the object) Generally the key is an ID or unique identifier, and the value is the corresponding detailed information, such as: product information, personal information, news, etc.SETUnordered setSADD (create a set), SMEMBERS (view a set), SREM (delete the value of a set), SDIFF set 1 set 2 (find the difference set), SINTER Set 1 Set 2 (finding the union), SUNION Set 1 Set 2 (finding the union) Find the intersection, union, collection, applied to social networks, such as: common hobbies, common friends, etc.ZSETOrdered SetSame as SETcan be combined with list to complete the ranking

Implementing the persistence of redis

Deploying redis

1. Create a data directory

mkdir -p /redis/soft
mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

Explain why you create the conf, logs, and pid directories yourself instead of letting them Initialization is automatically generated
We are in order to start multiple redis processes on one host to realize the later redis cluster (at least 6) (Author computer configuration does not allow me to operate arbitrarily)

2. Download redis Installation package

cd /redis/soft
wget http://download.redis.io/releases/redis-5.0.6.tar.gz

3. Unzip redis to /opt/redis_cluster/

tar zxf redis-5.0.6.tar.gz -C /opt/redis_cluster/
ln -s /opt/redis_cluster/redis-5.0.6  /opt/redis_cluster/redis  #做好软连接,方便自己管理

4. Change directory to install redis

	cd /opt/redis_cluster/redis
	make && make install

5. Write your own configuration file/opt /redis_cluster/redis_6379/conf/6379.conf
Add some important content

添加:
bind 127.0.0.1 192.168.10.1
port 6379
daemonize yes  #开启daemon进程pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
databases 16
dbfilename redis.rdb  #RDB持久化文件dir /opt/redis_cluster/redis_6379 #RDB存放的位置

6. Start the current redis service
redis-server /opt/redis_cluster/redis_6379/ conf/6379.conf

[root@redis-master ~]# netstat -anpt |grep 6379tcp        0      0 192.168.10.1:6379       0.0.0.0:*               LISTEN      49206/redis-server  
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      49206/redis-server  
tcp        0      0 127.0.0.1:41400         127.0.0.1:6379          TIME_WAIT   -                   
tcp        0      0 192.168.10.1:6379       192.168.10.8:46220      ESTABLISHED 49206/redis-server  
[root@redis-master ~]#

Persistence RDB configuration

Modify the configuration file and add the save item

vim /opt/redis_cluster/redis_6379/conf/6379.conf	
添加:
save 900 1           #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。save 300 10          #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。save 60 500        #在60秒(1分钟)之后,如果至少有500个key发生变化,则dump内存快照

Persistence AOF configuration

Same as modifying the configuration file
Add appendonly, enable persistence

vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
appendonly yes				#启用AOF持久化appendfilename "redis.aof"	#指定AOF文件名appendfsync everysec		#每秒同步一次

Restart redis to make it effective, verify persistence

redis-cli shutdownredis-server /opt/redis_cluster/redis_6379/conf/6379.conf

Add key-value pairs in the redis database

#!/bin/bashfor i in {1..500}do 
	redis-cli set k_$i v_$idone

Redis persistence configuration (picture and text introduction)

When you close the database at this time, the things in the memory will definitely be lost, but now they will definitely not be lost, and there will be persistent files

[root@redis-master ~]# redis-cli shutdown[root@redis-master ~]# redis-server /opt/redis_cluster/redis_6379/conf/6379.conf [root@redis-master ~]# [root@redis-master ~]# redis-cli127.0.0.1:6379> keys k_500
1) "v_500"127.0.0.1:6379>

Redis persistence configuration (picture and text introduction)

redis master-slave replication

Why do we need to do redis master-slave replication?
In order to solve the single point of failure, copy the data to one or more replica servers (slave servers) to achieve redundancy and achieve the purpose of fault recovery and load balancing

Start another server and install redis

1. For simplicity, we directly copy the previous master

[root@redis-master ~]# scp -rp /opt/redis_cluster/ root@192.168.10.8:/opt

2. Directlymake installinstall redis without compiling. The master has already

modified the configuration file

cd /opt/redis_cluster/redis
vim /opt/redis_cluster/redis_6379/conf/6379.conf 
修改:
	bind 127.0.0.1 192.168.10.8
	slaveof 192.168.10.1 6379  #添加master的ip port保存退出

3. Start the service

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

Create a new key value on the master server and test the automatic synchronization of the slave server

Redis persistence configuration (picture and text introduction)
Redis persistence configuration (picture and text introduction)
Note:
During the synchronization process, the slave server can only copy the data of the master database, and cannot manually add and modify data;
If the slave server must modify Data needs to be disconnected from synchronization:
[root@redis-slave ~]# redis-cli slaveof no one

Just prompt OK

If the master is down If the machine is running, the slave server can manually disconnect the synchronization first. At this time, it is an independent individual. The other slave servers can thenpoint to itself to complete the switch

This article is reproduced from: https://blog.csdn.net/weixin_43815140/article/details/106128848

More related knowledge , please visit PHP Chinese website! !

The above is the detailed content of Redis persistence configuration (picture and text introduction). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete