引入Redis哈希数据类型操作,对数据库多行同时插入数据

插入

这个表的表名为“myhash”,有四列:name、age、course、grade
不用事先创建表,和mysql不一样,直接入下所示创建并插入数据就可以了:

hmset myhash name 'Zhang Xiaoming' age 21 course math grade 98.5

查看刚刚插入的数据:

hmget myhash name age course grade

结果如下图所示:
插入数据若要更改数据:

设置或者获得一个值,可以使用HSET和HGET ,命令以及结果如下图所示:

hset myhash age 18
hget myhash age

结果如下图所示:age从21变为18
更新值
删除

HDEL命令删除一个或多个哈希表字段

hdel myhash age course

结果如下图所示:
删除
HGETALL获取在哈希表key中的所有字段和值 :

由于前面已经删除了age和course字段,所以HGETALL时只显示了name字段和grade字段以及他们的值,如下图所示:
Hgetall
最后退出来记得要保存哦,不然前功尽弃了:

shutdown save
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个示例的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' # 创建Redis和MySQL连接对象 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() # 关闭Redis和MySQL连接 redis_conn.close() mysql_conn.close() ``` 代码中首先创建了Redis和MySQL的连接对象,分别使用了`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、付费专栏及课程。

余额充值