数据持久化

时间:2023-02-21 08:58:11


数据持久化

所谓数据持久化就是将redis中存储的item数据存储到其他数据库或介质中

为什么要做数据持久化处理

1)redis是内存型数据库,容量有限

2)内存在断电时会丢失所有数据,不安全

3)数据的使用一般不使用redis

如何将数据持久化
——–将redis数据库中的数据读出,存放到其他类型的数据库中

Python redis库

1.链接:

redis.Redis(host,port,db)

2.读取:

以先进先出的形式读取数据
source,data = redis.blpop(keylist)
以先进后出的形式读取数据
source,data = redis.brpop(keylist)

简单的代码逻辑

#需要链接两个数据库,需要导入redis, mongodb
import redis
from pymongo import MongoClient
import json

# 链接redis数据库
redis_client = redis.Redis(host='172.16.144.6666666', port=6379, db=0) #ip地址,端口
#链接mongodb数据库
mongo_client = MongoClient('127.0.0.1', 27017) #ip 端口
db = mongo_client['JD'] #数据库名
col = db['mobile'] #集合名

while True:
# 从redis中读取数据
source, data = redis_client.blpop(['mobile:items']) #此时读取的是集合items
str_data = data.decode()
dict_data = json.loads(str_data) #转化为json字典

# 将数据写入到mongodb中
col.insert(dict_data)