shell导出和导入redis

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

1、导出redis


[plain] view plain copy

  1. #!/bin/bash  

  2. REDIS_HOST=localhost  

  3. REDIS_PORT=6379  

  4. REDIS_DB=1  

  5.   

  6.   

  7. KEYNAME=redis:hash:*  

  8. KEYFILE=key.txt  

  9. echo "KEYS $KEYNAME" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB > $KEYFILE  

  10.   

  11.   

  12. OUTFILE=valuelist.txt  

  13. TEMPFILE=$OUTFILE.tmp  

  14. echo > $TEMPFILE  

  15. for key in `cat $KEYFILE`  

  16. do  

  17.     echo $key  

  18.     #echo "HGETALL $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE    

  19.     echo "GET $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE  

  20. done  



2、整理导出的结果


[plain] view plain copy

  1. cat $TEMPFILE|xargs -n 2|awk -F" " -v KEYNAME=$KEYNAME '{print "HSET "KEYNAME " " $1, "\""$2"\""}' > $OUTFILE  

其中的xargs -n 2是把2行合成一行,换行符用空格代替


然后用awk按空格分开,$1是keynam $2是key的值

再次转换成HSET的格式,其中用到KEYNAME变量,这个要用-v预先定义。

最后转化为 HSET KEYNAME KEY "VALUE"格式。


3、导入转换的结果


[plain] view plain copy

  1. cat $OUTFILE | redis-cli -h localhost -p 6379  










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1743455,如需转载请自行联系原作者
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
12天前
|
Shell 分布式数据库 Hbase
如何使用 HBase Shell 进行数据的批量导入和导出?
如何使用 HBase Shell 进行数据的批量导入和导出?
|
3月前
|
NoSQL Redis 容器
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
|
3月前
|
NoSQL Redis
【Azure Redis】Redis导入备份文件(RDB)失败的原因
【Azure Redis】Redis导入备份文件(RDB)失败的原因
|
3月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入
【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入
|
3月前
|
缓存 NoSQL 算法
【Azure Redis 缓存】Redis导出数据文件变小 / 在新的Redis复原后数据大小压缩近一倍问题分析
【Azure Redis 缓存】Redis导出数据文件变小 / 在新的Redis复原后数据大小压缩近一倍问题分析
|
4月前
|
Shell 分布式数据库 Hbase
使用 HBase Shell 进行数据的批量导入和导出
使用 HBase Shell 进行数据的批量导入和导出
617 6
|
4月前
|
SQL NoSQL 关系型数据库
若依修改02,若以提供了多种版本,RuoYi-Cloud和SpringBoot+Vue都是PC端的,如果想要适配手机端,用Uniapp+vue,导入Mysql和启动Redis
若依修改02,若以提供了多种版本,RuoYi-Cloud和SpringBoot+Vue都是PC端的,如果想要适配手机端,用Uniapp+vue,导入Mysql和启动Redis
|
JSON NoSQL Redis
百度搜索:蓝易云【如何通过Python将JSON格式文件导入redis?】
通过执行以上步骤,你可以使用Python将JSON格式的文件导入Redis。请注意,上述步骤是一个简单的示例,实际的操作可能因数据结构和需求而有所不同。你需要根据你的JSON文件的具体结构和Redis使用方式进行适当的调整。
274 6
|
编解码 缓存 移动开发
我今天才知道redis还可以导入文件数据!
我今天才知道redis还可以导入文件数据!
198 0
|
6月前
|
NoSQL Shell Redis
Docker【应用 02】借助Docker部署Redis集群(Docker网卡创建+6个Redis集群搭建shell脚本)
Docker【应用 02】借助Docker部署Redis集群(Docker网卡创建+6个Redis集群搭建shell脚本)
117 0