1、Redis的安装和启动步骤:
1)、在centOS系统下安装gcc的环境:运行 yum install gcc-c++ 命令(这个是在线安装,需要联网)
2)、将redis的压缩包上传到linux系统,使用tar zxvf 命令进行解压缩
3)、进入解压之后的文件夹,使用make指令进行编译,编译之后,使用make install PREFIX=/usr/local/redis命令进行安装,指定安装目录是/usr/local/redis
4)、cd /usr/local/redis/bin,里面有redis-server,执行这个文件即可启动redis服务,但是这样直接起动是采取前端启动,启动之后当前终端就不能再进行操作了
5)、redis后台启动服务的方法:把redis解压之后的目录里面的的redis.conf文件复制到安装目录/usr/local/redis/bin里面
修改redis.conf的内容:daemonize yes
再重新后台启动./redis-server redis.conf
6)、查看redis是否成功启动,查看进程ps aux|grep redis, 关闭进程 kill 进程号
7)、使用redis客户端关闭redis服务,./redis-cli shutdown
2、redis的使用:
1)、使用redis自带的客户端连接redis:./redis-cli , 这个命令默认是连接本机的redis服务,如果要连接别的电脑上的redis服务,使用
./redis-cli -h 192.168.25.153 -p 6379
-h:连接的服务器的地址
-p:服务的端口号
2)、使用ping指令,返回PONG,表示判断redis服务的健康状态
3、redis常用指令(redis所有的数据都是key value形式保存的,我们说的数据类型都是值value的类型):
1)、string数据类型:
set str1 abc --设置一个key:str1;value:abc
get str1 --获取可以是str1的value值
keys * --获取所有的string数据类型的key值
incr key1 --如果没有key值是key1,就先创建一个key是key1的key,value是0,在将value加1,所以结果返回的是1
decr key1 --将key值key1的value减一
del key1 --删除key1的数据
2)、hash数据类型(一个key对应一个hash数据,一个hash数据就相当于一个map):
hset hash1 filed1 1 --创建一个key--hash,value是hash数据类型,里面有一组key-value:filed1--1
hget hash1 filed1 --获取hash1里面的hash数据中key是filed1的值
hkey hash1 --看hash1中的map数据有哪些key
hval hash1 --看hash1中的map数据有哪些value
hgetall hash1 --获取hash1里面的key-value值
hdel hash1 filed3 --删除hash1里面的map的filed3
3)、List数据类型(有顺序可重复):
lpush list1 a b c d --创建一个key-list1,value是List数据,从左边添加a b c d,则最左边的那个数据是d
rpush list1 1 2 3 4 --从右边给list1添加数据1 2 3 4,则最右边是4
lrange list1 0 -1 --查看list1的所有数据
lpop list1 --取出list1最左边的数据,这里返回的是d,取出之后,list1里面就没有d这个数据了
rpop list1 --取出list1最右边的数据,这里返回的是4,取出之后,list1里面就没有4这个数据了
4)、Set数据类型(元素无顺序,不能重复):
sadd set1 a b c c c d --创建一个key set1,往里面添加a b c c c d,但是只能添加进去a b c d,set会自动去重
smembers set1 --查看set1的数据
srem set1 a --删除set1中的a数据
sadd seta a b c d e
sadd setb c d e f g
sdiff seta setb --取出seta和setb相比较,seta中特有的值
sdiff setb seta --取出setb和seta相比较,setb中特有的值
sinter seta setb --取seta,setb的交集
sunion seta setb --取seta,setb的并集
5)、SortedSet(zset):有顺序,不能重复
zadd zset1 2 a 5 b 1 c 6 d --创建一个zset1,值是a b c d, 2 5 1 6分别是前面4个值的权重
zrange zset1 0 -1 --将zset1的值按照他们的权重升序显示
zrem zset1 a --删除a
zrevrange zset1 0 -1 --将zset1的值按照他们的权重降序排列显示
zrange zset1 0 -1 withscores --将zset1的值按照他们的权重升序显示,并且带上他们的各自的权重值(这里也可以使用 zrevrange zset1 0 -1 withscores)
6)、设置key的有效时间
expire str1 100 --设置str1的有效时间是100s,100s之后会自动删除str1
ttl str1 --查看str1还有多长时间到期(如果返回的正数,表示这个key的有效期正在倒计时,如果是-1,表示这个key是永久保存的,默认不设置的话,key是永久保存的 如果是-2,表示这个key不存在)
Persist list1 --让list1成为永久保存的
4、Redis的持久化方案:
redis持久化有两种方案,Rdb和Aof
1)、Rdb方案:是redis默认开启的方案,不能关闭。因为Redis的数据都是保存在内存当中,这个方案是把redis内容中的数据保存到磁盘上的rdb文件中,重新启动redis服务器时,
从rdb文件中取出所有数据恢复到内存中
在redis的redis.conf配置文件中有相关配置:
save 900 1 --表示在900秒内有一个key改变,保存一次数据到rdb文件
save 300 10 --表示在300秒内有10个key改变,保存一次数据到rdb文件
save 60 10000 --表示在60秒内有10000个key改变,保存一次数据到rdb文件
2)、aof形式(redis默认不开启):append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。redis恢复时会从aof文件中读取数据恢复到内存中。
开启aof形式:在redis.conf文件中,将appendonly no改成appendonly yes