工作中常常需要将重要高频数据放入redis中供使用,如下方法是最便捷最快速的方式。
已验证过
1.将数据库数据批量导出为文件,如txt
dataredis.txt文件中数据的存放格式要求比较严格,换行符必须使用“\r\n”,数据格式如:
*3
$3
SET
$9
susantest
$4
test
数据内容的解释:
*3 | 表示有三个参数:SET susantest test |
---|---|
$3 | 对第一个参数SET计算长度得到的值 |
SET | redis的执行数据操作的命令 |
$9 | 对第二个参数(susantest)计算得到的长度 |
susantest | 存放数据的KEY |
$4 | 对第三个参数计算得到的长度 |
test | KEY对应的value值 |
2.将数据库内容导出为特定格式的文本
#!/bin/bash
export PGPASSWORD=postgres
psql -h 192.168.1.67 -U postgres -d sdx -t -A -c "SELECT '*3'||chr(10)||'$'||LENGTH('SET')||chr(10)||'SET'||chr(10)||'$'||LENGTH(code)||chr(10)||code||chr(10)||'$'||LENGTH (uuid)||chr(10)||uuid||chr(10) FROM shop where shop_source='my'" >>format2redis.txt
3.在linux机器上执行脚本
cat format2redis.txt | redis-cli -h 192.168.1.67 -c -p 6379 -n 2 --pipe &
redis-cli参数:
-n 选择database
(100多万数据5秒左右入redis,redis-cli为redis 2.4.14版本后出的)