MySql数据格式转成Redis键值对格式

1 篇文章 0 订阅

MySql例:

iduser_nameage
1test110
2test220

转换成Redis键值对方式

            第一条记录:

                                 tp_user:id:1:user_name  test1    (表名:主键:主键值:字段名   字段值 )

                                 tp_user:id:1:age 10    (表名:主键:主键值:字段名   字段值 )

 

            第二条记录:

                                 tp_user:id:2:user_name  test1    (表名:主键:主键值:字段名   字段值 )

                                 tp_user:id:2:age 20    (表名:主键:主键值:字段名   字段值 )

要将 Redis 中的数据转存到 MySQL 中,你可以使用 Java 编写一个程序来实现。下面是一个简单的示例代码,供你参考: ```java import redis.clients.jedis.Jedis; import redis.clients.jedis.ScanParams; import redis.clients.jedis.ScanResult; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Map; public class RedisToMysql { public static void main(String[] args) { // Redis 连接参数 String redisHost = "localhost"; int redisPort = 6379; String redisPassword = "your_redis_password"; int redisDbIndex = 0; // MySQL 连接参数 String mysqlHost = "localhost"; int mysqlPort = 3306; String mysqlDatabase = "your_database_name"; String mysqlUsername = "your_mysql_username"; String mysqlPassword = "your_mysql_password"; // 连接 Redis Jedis jedis = new Jedis(redisHost, redisPort); jedis.auth(redisPassword); jedis.select(redisDbIndex); // 连接 MySQL try (Connection conn = DriverManager.getConnection("jdbc:mysql://" + mysqlHost + ":" + mysqlPort + "/" + mysqlDatabase, mysqlUsername, mysqlPassword)) { // 遍历 Redis 中的所有键 ScanParams scanParams = new ScanParams().match("*"); ScanResult<String> scanResult; String cursor = "0"; do { scanResult = jedis.scan(cursor, scanParams); for (String key : scanResult.getResult()) { // 从 Redis 获取数据 Map<String, String> redisData = jedis.hgetAll(key); // 将数据插入到 MySQL String sql = "INSERT INTO your_table_name (key, field, value) VALUES (?, ?, ?)"; try (PreparedStatement stmt = conn.prepareStatement(sql)) { for (Map.Entry<String, String> entry : redisData.entrySet()) { stmt.setString(1, key); stmt.setString(2, entry.getKey()); stmt.setString(3, entry.getValue()); stmt.executeUpdate(); } } } cursor = scanResult.getStringCursor(); } while (!cursor.equals("0")); System.out.println("Data transfer completed!"); } catch (SQLException e) { e.printStackTrace(); } finally { jedis.close(); } } } ``` 请根据你的实际情况修改示例代码中的 RedisMySQL 连接参数,以及 MySQL 表名等信息。这段代码将遍历 Redis 中的所有键,将键值对数据插入到 MySQL 的指定表中。你还可以根据实际需求进行进一步的优化和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值