这里介绍,代码如下:
#!/usr/bin/env bash
redis-cli -h 127.0.0.1 -p 6379 -a 123456 -n 1 keys '*' |
while read key
do
key_val=`redis-cli -h 127.0.0.1 -p 6379 -a 123456 -n 1 get ${key}`
echo ${key} ${key_val}
done
其中:
-h 代表redis安装地址
-p 代表redis端口
-a 代表redis访问密码
-n 代表redis数据库的db index
Redis 命令用于在 redis 服务上执行操作。所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cmd窗口,将路径定位到Redis安装目录下,通过redis-server命令执行。
要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中,也就是redis-cli.exe,同理,可以双击执行也可以通过命令执行。
语法
Redis 客户端的基本语法为:
$ redis-cli
要先启动redis服务端:
C:\windows\system32\cmd.exe -redis-server.exe redis.conf
keys * //获取所有key列表
del key //删除key
expire key xx //设置key的过期时间(xx秒后过期)
ttl key //查看key的过期时间
select 0-15 //选择库
flushall //清空整个redis服务器数据,所有的数据库全部清空
flushdb //清除当前库,redis中默认有16个数据库,名称分别为0,1,2...15
redis怎么实现栈和队列? --> 都用list,控制一边进同一边出就是栈,一边进另一边出就是队列.
hash类型类似于php的数组
hset key name value //添加一个name=>value键值对到key这个hash类型
hget key name //获取hash类型的name键对应的值
hmset key name1 key1 name2 key2 //批量添加name=>value键值对到key这个hash类型
hmget key name1 name2 //批量获取hash类型的键对应的值
hkeys //返回哈希表 key 中的所有键
hvals //返回哈希表 key 中的所有值
hgetall //返回哈希表 key 中,所有的键和值
通过配置文件设置密码-长久设置
在配置文件 redis.conf 中增加一行代码
requirepass 123456
将密码123456设置到配置文件中,redis启动时加载该文件,即可启用密码
安装
make
make test -- 如果报错,则安装tcl
make PERFIX=/usr/local/redis install
cp /usr/src/redis-3.0.3/redis.conf /usr/local/redis
./bin/redis-server ./redis.conf -- 开启redis服务
vim redis.conf
daemonize yes --放在后台选项
./bin/redis-cli -h localhost -p 6379
bin/下的文件
redis-check-aof redis-check-dump -- 日志文件
redis-benchmark -- 检测工具
./redis-benchmark -n 100000 -c 60
string字符串类型
keys * --查看所有键值
set age 19 --设置键值的数据
get age --查看键值的数据
keys age --查看键值本身
setnx name1 zhangsan --防覆盖新建键值
setex name2 30 Janni --新建或修改临时键值,有效时间30s
ttl name2 --查看键值的有效期
mset a1 111 a2 222 a3 333 --设置多个键值
mget a1 a2 a3 --查看多个键值
msetnx a3 444 a4 555 --创建多个防覆盖机制键值
setrange a3 2 lisi --替换,从第二个字符开始
getset a3 "xxx" --查看原值并修改
getrange a3 0 5 --查看a3键值的0-5之间的字符
incr c1 --键值依次增加1
incrby c1 100 --键值依次增加100,值可自定义
decr c1 --键值依次减少1
decrby c1 100 --键值依次减少100,值可自定义
strlen b1 --查看键值的长度
append b1 lisi --追加键值的数据
del b1 --删除键值
hash类型
hset hash1 name1 hanhan --创建第一组数据
键 字段 键值
hget hash1 name1 --查第一组的第一个字段
hsetnx hash1 name1 Janni --防覆盖创建
hmset hash1 name1 name2 --创建多个字段
hmget hash1 name1 name2 --查看多个字段
hlen hash1 --查字段个数
hgetall hash1 --查指定键中的字段和值
hkeys hash1 --查指定键中的字段名称
hvals hash1 --查指定键中的数值
hdel hash1 name3 --删除指定键中的字段
hincrby hash1 id1 5 --hash1键中的id1字段每次增加5
list双向列表
1 2 3 4 5 正数下标
-5 -4 -3 -2 -1 负数下标
lpush list1 1 2 3 4 --创建队列向左
rpush list1 one two three --创建队列向右
lrange list1 0 -1 --查list1中所有的队列
linsert list1 before two hi --在list1列表中的two前面插入hi队列 (before | after)
lset list1 1 “six” --修改队列中元素的值
lrem list1 -2 hi --删除元素中重复的值,其中-2代表几个 ,并且是倒序的
ltrim list1 0 3 --保留list1上以下标为主的0-3的队列
lpop list2 --删左边第一个
rpop list2 --删右边第一个
rpoplpush list1 list2 --把list1的最后一个元素放到list2中
llen list2 查有多少个队列
lindex list2 1 --通过下标查看元素值
set集合
交集 差集 并集
sadd set1 aa bb cc --添加set集合
smembers set1 --查看集合中所有的元素
srandmember set1 --随机查看
spop set1 --随机删除
srem set1 --指定删除
scard set1 --查看该集合有多少个元素
sismember set1 bb --查看bb是否属于set1集合的元素
sdiff set1 set2 --查看set1和set2的差集
sdiffstore set3 set1 set2 --查看set1和set2的差集,并写入到set3
sinter set1 set2 --查看set1和set2的交集
sinterstore set3 set1 set2 --查看set1和set2的交集,并写入到set3
sunion set1 set2 --查看set1和set2的并集
sunionstore set3 set1 set2 --查看set1和set2的交集,并写入到set3
zset有序集合 sorted set
zadd zset1 11 aa 22 bb 33 cc --创建有序集合
zrange zset1 0 -1 withscores --查看有序集合,withscores参数是查看有序集合的分数 从小到大的顺序
zrevrange zset1 0 -1 withscores --查看有序集合,从大到小的顺序
zrangebyscore zset1 10 20 --查有序集合zset1中分数10-20之间的元素
zrem zset1 aa --删除有序集合中指定的值
zincrby zset1 5 aa --有序集合zset1中aa的值依次增加5,如不存在,则创建
zrank zset1 aa --通过元素名获取下标,从小到大的顺序
zrevrange zset1 aa --通过元素名称获取下标,从大到小的顺序
zcard zset1 --查看zset1中有几个元素
zcount zset1 10 20 --查看zset1中10-20之间的有多少个元素
zremrangeburank zset1 1 2 --根据下标删除数据
zremrangebyscore zset1 10 22 --根据分数删除数据
zinterstore zset3 2 zset1 zset2 --取2个有序集合的交集,并保存到zset3
zunionstore zset3 zset3 2 zset1 zset2 --取2个有序集合的并集,并保存到zert3
全局命令
dbsize --统计所有键值的数量
exists aa --查看某个键值是否存在
expire 设置生效时间
rename d1 d2 --改键值的名称,d1改为d2
type a1 --查a1键值的类型
info --查数据库版本信息
select 2 --选择其它数据库 范围(0-15)
more d2 1 --移动键值到某数据库
flushdb --清空当前数据库
flushdball 清空所有数据库
redis应用
启用密码:
vim /usr/local/redis/redis.conf
requirepass 123456
关闭服务:
pkill redis
使用密码登陆:
/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 开启服务
/usr/local/redis/bin/redis-cli -h localhost -p 6379 登陆redis
数据库备份和还原
备份:
save 保存到dump.rdb文件
cp -p /usr/local/redis/dump.rdb /root 把备份文件拷贝到/root下
还原:
cp -p /root/dump.rdb /usr/local/redis
设置备份文件的路径:
vim redis.conf
dir /usr/local/redis
设置主从
cp -r redis redis-slave
修改主配置文件的参数,不要和主服务器的相同
vim redis-slave/redis.conf
pidfile /usr/local/redis-slave/redis.pid
port 6380
dir /usr/local/redis-slave --指定备份的目录
slaveof 127.0.0.1 6379 --主服务器的IP地址和端口
masterath 123456 --有密码则开启
原理:
(1)Slave服务器连接到Master服务器.
(2)Slave服务器发送SYCN命令.
(3)Master服务器备份数据库到.rdb文件.
(4)Master服务器把.rdb文件传输给Slave服务器.
(5)Slave服务器把.rdb文件数据导入到数据库中.
开启从服务器的redis进程:
/usr/local/redis-slave/bin/redis-server /usr/local/redis/redis.conf
登陆redis:
/usr/local/redis-slave/bin/redis-cli -h localhost -p 6380 -a 123456