
a. 访问特定的数组元素,比如访问第2个元素,那么利用下标index=1进行访问: index支持负值,表示从后向前访问, 第一个元素的index =0, 如果从后向前,那么最后一个元素index 可以表示为index=-1.
b. 访问所有的数组元素,这时候index 用* 表示就可以了;如下:
c. 获取数组元素的个数:
在上述获取所有元素的前面加上一个# 就可以了,如下:
a. 根据index 进行修改:
b. 追加元素到数组中:
当数组名称中含有shell变量的时候,此时随着shell变量的变化,那么引用的数组自然也就不同;此时可以通过如下的方式实现 变量的嵌套:
嵌套变量有两个$符号,一个用来组合成完整的变量名称,另一个用于 标记组合后的内容是一个变量,而后一个$符号需要用 单引号括起来,剩余的部分需要用双引号括起来;然后用echo 来显示这个变量,但因为 单引号 引用的字符不会被shell解释,所以输出结果是单引号,此时用eval 来调用echo 语句就可以实现解析了;具体实例如下:
xshell远程数据库添加数据的步骤:1、当远程数据库断线时,将数据上传到本地数据库。
2、远程数据库由断线变为可连接时,将本地数据库中的数据上传到远程数据库中。
1、导出redis
[plain] view plain copy
#!/bin/bash
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=1
KEYNAME=redis:hash:*
KEYFILE=key.txt
echo "KEYS $KEYNAME" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB > $KEYFILE
OUTFILE=valuelist.txt
TEMPFILE=$OUTFILE.tmp
echo > $TEMPFILE
for key in `cat $KEYFILE`
do
echo $key
#echo "HGETALL $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE
echo "GET $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE
done
2、整理导出的结果[plain] view plain copy
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
cat $OUTFILE | redis-cli -h localhost -p 6379
二、直接用Redis的Dump和Restore导出和导入
[plain] view plain copy
redis-cli --raw dump test | head -c-1 | redis-cli -x restore test1 0
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)