redis缓存mysql数据代码
时间: 2023-12-05 14:06:03 浏览: 51
以下是一个使用Redis缓存MySQL数据的Python代码示例:
```python
import redis
import pymysql
# 连接Redis
redis_conn = redis.Redis(host='localhost', port=6379, db=0)
# 连接MySQL
mysql_conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test')
# 定义函数,从MySQL中获取数据
def get_data_from_mysql(id):
cursor = mysql_conn.cursor()
cursor.execute("SELECT * FROM user WHERE id=%s", (id,))
result = cursor.fetchone()
cursor.close()
return result
# 定义函数,从Redis中获取数据
def get_data_from_redis(id):
result = redis_conn.get(id)
if result is not None:
result = result.decode('utf-8')
return result
# 定义函数,将数据存入Redis
def set_data_to_redis(id, data):
redis_conn.set(id, data)
# 定义函数,从MySQL中获取数据并存入Redis
def get_data(id):
data = get_data_from_redis(id)
if data is None:
data = get_data_from_mysql(id)
if data is not None:
set_data_to_redis(id, str(data))
return data
# 测试
print(get_data(1)) # 第一次从MySQL中获取数据并存入Redis
print(get_data(1)) # 第二次从Redis中获取数据
```
在以上代码中,我们首先连接了Redis和MySQL数据库。然后我们定义了四个函数:
- `get_data_from_mysql(id)`:从MySQL中获取数据。
- `get_data_from_redis(id)`:从Redis中获取数据。
- `set_data_to_redis(id, data)`:将数据存入Redis。
- `get_data(id)`:从Redis中获取数据,如果Redis中不存在该数据则从MySQL中获取并存入Redis。
最后我们测试了`get_data()`函数,第一次获取数据时会从MySQL中获取并存入Redis,第二次获取数据时则直接从Redis中获取。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)