关于Redis是如何将数据操作到MySQL数据库中的问题?

       在此之前由于并不是非常redis,使用过redis,但是又很快就忘了redis是怎样将我们的数据进行增删改操作, 没明白之前,总以为redis和数据库是绑定在一起的, 我们操作redis中的数据, 也能一并操作到数据库中, 在这之中, 我犯了一个大忌就是私自将redis 和 数据库捆绑, 误以为能从redis缓存中取得数据, 就是redis自己从MySQL数据库中获取的, 我总以为是有个配置能直接绑定数据库并操作, 当我把redis那寥寥无几的几串代码,看了又看还从网上寻找答案, 可都是一无所获, 当我看我之前写redis时的练习时, 我才终于知道, 我犯的错是什么!!!!!!!

是我们将数据传输到redis中.  方便我们获取  并不是redis帮我们获取以及进行增删改操作

redisTemplate.opsForValue().set("user:1003", products, Duration.ofSeconds(60).getSeconds());

   就是犯了先入为主的思想,  独自将redis 与 MySQL数据库 绑定在一起 , redis 是redis ,  MySQL数据库是MySQL数据库, 二者毫无关联, 要说有关联的就是那我们将数据传输到redis中

1 、 访 问 速 度 快 , 因 为 数 据 存 在 内 存 中 , 类 似 于 Java 中 的 HashMap 或 者 C++ 中 的 哈 希 表 ( 如 unordered_map/unordered_set),这两者的优势就是查找和操作的时间复杂度都是O(1)

2、数据类型丰富,支持String,list,set,sorted set,hash这五种数据结构

3、支持事务,Redis中的操作都是原子性,换句话说就是对数据的更改要么全部执行,要么全部不执 行,这就是原子性的定义

4、特性丰富:Redis可用于缓存,消息,按key设置过期时间,过期后将会自动删除。

    仅以此篇来记录所犯错误,并铭记

下面是一个示例的Redis哈希数据同步到MySQL数据库中的Python代码: ```python import redis import pymysql # Redis数据库连接信息 REDIS_HOST = 'localhost' REDIS_PORT = 6379 REDIS_PASSWORD = None REDIS_DB = 0 # MySQL数据库连接信息 MYSQL_HOST = 'localhost' MYSQL_PORT = 3306 MYSQL_USER = 'root' MYSQL_PASSWORD = 'password' MYSQL_DB = 'myapp' # 创建RedisMySQL连接对象 redis_conn = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=REDIS_DB) mysql_conn = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER, password=MYSQL_PASSWORD, db=MYSQL_DB) # 获取Redis中所有哈希表的名称 hash_names = redis_conn.keys('myhash:*') # 遍历所有哈希表,将数据同步到MySQL中 for name in hash_names: hash_data = redis_conn.hgetall(name) # 将哈希表的键值对转换成MySQL插入语句的值字符串 hash_values = ','.join([f"('{k.decode()}', '{v.decode()}')" for k, v in hash_data.items()]) # 构造MySQL插入语句 insert_sql = f"INSERT INTO mytable (key, value) VALUES {hash_values}" # 执行MySQL插入语句 with mysql_conn.cursor() as cursor: cursor.execute(insert_sql) # 提交MySQL事务 mysql_conn.commit() # 关闭RedisMySQL连接 redis_conn.close() mysql_conn.close() ``` 代码中首先创建了RedisMySQL的连接对象,分别使用了`redis.StrictRedis`和`pymysql.connect`方法。然后获取Redis中所有的哈希表名称,遍历每个哈希表,将其数据同步到MySQL中。 对于每个哈希表,首先使用`redis_conn.hgetall`方法获取其所有的键值对,然后将其转换成MySQL插入语句的值字符串,最后构造MySQL插入语句并执行。注意,在执行MySQL插入语句之要调用`mysql_conn.commit()`方法提交事务。 完整代码实现了Redis哈希数据同步到MySQL数据库的过程。需要根据具体的业务场景进行适当的修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值