python使用mongodb作为主数据库,redis作为副数据库实现缓存的例子代码
时间: 2024-02-04 16:04:21 浏览: 116
Python操作redis和mongoDB的方法
以下是使用Python操作MongoDB和Redis实现缓存的示例代码:
```python
import pymongo
import redis
# 连接MongoDB
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
mongo_db = mongo_client['test_db']
mongo_collection = mongo_db['test_collection']
# 连接Redis
redis_client = redis.Redis(host='localhost', port=6379)
# 获取缓存数据
def get_data_from_cache(key):
data = redis_client.get(key)
if data is not None:
return data.decode('utf-8')
return None
# 保存数据到缓存
def save_data_to_cache(key, data):
redis_client.set(key, data)
# 获取数据
def get_data_from_db(id):
data = get_data_from_cache(id)
if data is not None:
return data
data = mongo_collection.find_one({'_id': id})
if data is not None:
save_data_to_cache(id, str(data))
return str(data)
return None
# 更新数据
def update_data_in_db(id, data):
mongo_collection.update_one({'_id': id}, {'$set': data})
save_data_to_cache(id, str(data))
# 删除数据
def delete_data_from_db(id):
mongo_collection.delete_one({'_id': id})
redis_client.delete(id)
```
以上代码中,我们使用pymongo模块连接MongoDB数据库,redis模块连接Redis缓存数据库。然后我们定义了一些操作函数,包括从缓存中获取数据、保存数据到缓存、从数据库获取数据、更新数据和删除数据等。在获取数据的时候,我们先从缓存中获取,如果缓存中没有,再从数据库中获取,并将数据保存到缓存中以便下次获取。在更新和删除数据的时候,我们不仅要更新或删除数据库中的数据,还要同步删除缓存中的数据。
希望这个例子能够对你有所帮助。
阅读全文