Linux下redis的相关笔记整理

Linux下安装redis:

1、下载redis(去官网或者通过命令下载):

	官网地址:   https://redis.io/
	Linux地址:[root@192 opt]#  wget http://download.redis.io/releases/redis-4.0.8.tar.gz

2、解压下载的压缩包:

	[root@192 opt]# tar -zxvf redis-4.0.8.tar.gz

3、进入到redis-4.0.8下编译make(注意gcc和redis的版本问题):

	[root@192 redis-4.0.8]# make
   (注意:如果没有gcc的会编译错误,需要运行该命令 yum  install -y gcc-c++,运行之后执行make,会提示原先错误,
   需要make distclean,再make)

4、执行make test(可执行可不执行):

	[root@192 redis-4.0.8]# make test

5、执行make install:

	[root@192 redis-4.0.8]# make install

6、创建一个目录,用来存放redis.conf

	[root@192 /]# mkdir myredis
	[root@192 redis-4.0.8]#  cp redis.conf /myredis/

7、进入到编辑redis.conf,找到 daemonize no 改为 daemonize yes:

	[root@192 myredis]# vim redis.conf 

8、启动redis:

	[root@192 bin]# redis-server  /myredis/redis.conf 
	[root@192 bin]# redis-cli -p 6379

9、简单测试:

	127.0.0.1:6379> ping 
	PONG
	127.0.0.1:6379> set k1 hello
	OK
	127.0.0.1:6379> get k1
	"hello"
	127.0.0.1:6379> SHUTDOWN
	not connected> exit

10、查看redis进程:

	[root@192 myredis]# ps -ef|grep redis

redis常见的数据类型操作命令:

http://redisdoc.com/

redis持久化:

RDB(redis DataBase):在指定的时间间隔内将内存中的数据集快照写入磁盘。
AOF(Append only file):当数据写入内存中的时候,以日志的形式记录所有的写操作。(数据量较大时,数据的恢复缓慢)

RDB的相关回复策略:

1、修改myredis下的redis.conf

[root@192 bin]# vim /myredis/redis.conf 如下所示

Linux下redis的相关笔记整理_第1张图片
2、时刻清除掉/usr/local/bin 中dump.rdb(最好开两个终端)

[root@192 bin]# rm -rf dump.rdb

3、然后启动redis服务、set 10个值或者多个。

[root@192 bin]# redis-server /myredis/redis.conf 
[root@192 bin]# redis-cli -p 6379

Linux下redis的相关笔记整理_第2张图片
4、可以去看看/usr/local/bin 中是否生成dump.rdb文件(2分钟后会生成),并且复制了一份dump_hk.rdb文件,避免丢失。

Linux下redis的相关笔记整理_第3张图片
5、然后清空这个库以及关闭redis服务。并且删除dump.rdb文件:

127.0.0.1:6379> FLUSHALL
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> SHUTDOWN
not connected> exit

[root@192 bin]# rm -f dump.rdb 

6、然后重启redis服务,去查询刚刚的值,这里你会发现没数据,哈哈,怎么回事呢,这个你需要回到第5步里,FLUSHALL已经清空了这个库,但是shutdown时他也会生成一个dump.rdb文件,相当于保存的是空的dump.rdb文件,所以当你进行这一步时是空的。那需要怎么做呢?嘻嘻,这样搞,关闭该redis服务。

[root@192 bin]# redis-server /myredis/redis.conf 
7622:C 08 Jun 22:42:54.902 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7622:C 08 Jun 22:42:54.902 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=7622, just started
7622:C 08 Jun 22:42:54.902 # Configuration loaded
[root@192 bin]# redis-cli -p 6379
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> SHUTDOWN
not connected> exit

7、关闭之后,去复制dump_hk.rdb 为dump.rdb

[root@192 bin]# cp dump_hk.rdb dump.rdb 
[root@192 bin]# ll
total 35472
-rw-r--r--. 1 root root     172 Jun  8 22:41 dump_hk.rdb
-rw-r--r--. 1 root root     172 Jun  8 22:46 dump.rdb
-rwxr-xr-x. 1 root root 5599550 Jun  7 18:35 redis-benchmark
-rwxr-xr-x. 1 root root 8320907 Jun  7 18:35 redis-check-aof
-rwxr-xr-x. 1 root root 8320907 Jun  7 18:35 redis-check-rdb
-rwxr-xr-x. 1 root root 5738674 Jun  7 18:35 redis-cli
lrwxrwxrwx. 1 root root      12 Jun  7 18:35 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 8320907 Jun  7 18:35 redis-server

Linux下redis的相关笔记整理_第4张图片
8、复制完毕之后,重启redis服务,输入keys * 发现数据回来了,你懂了吗?小可爱,嘻嘻。

[root@192 bin]# redis-server /myredis/redis.conf 
7692:C 08 Jun 22:46:15.839 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7692:C 08 Jun 22:46:15.839 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=7692, just started
7692:C 08 Jun 22:46:15.839 # Configuration loaded
[root@192 bin]# redis-cli -p 6379
127.0.0.1:6379> keys *
 1) "k4"
 2) "k11"
 3) "k2"
 4) "k5"
 5) "k3"
 6) "k8"
 7) "k12"
 8) "k10"
 9) "k9"
10) "k7"
11) "k6"
12) "k1"
127.0.0.1:6379> set inport inmpoer
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379> keys *
 1) "k4"
 2) "inport"
 3) "k11"
 4) "k2"
 5) "k5"
 6) "k3"
 7) "k8"
 8) "k12"
 9) "k10"
10) "k9"
11) "k7"
12) "k6"
13) "k1"

Linux下redis的相关笔记整理_第5张图片

AOF

1、使用AOF时,提前复制一份redis.conf,复制为redis_aof.conf,然后进入到redis_aof.conf中,修改appendonly no改为 appendonly yes,如下图:

[root@192 myredis]# cp redis.conf redis_aof.conf 
[root@192 myredis]# ll
total 120
-rw-r--r--. 1 root root 58354 Jun  9 11:05 redis_aof.conf
-rw-r--r--. 1 root root 58354 Jun  8 23:12 redis.conf
[root@192 myredis]# vim redis_aof.conf

Linux下redis的相关笔记整理_第6张图片
2、移除掉使用RDB时生成的dump_hk.rdb和dump.rdb文件

[root@192 bin]# rm -f dump_hk.rdb 
[root@192 bin]# rm -f dump.rdb 

Linux下redis的相关笔记整理_第7张图片
3、启动redis服务,查看是否生成appendonly.aof文件,然后添值,添值之后shutdown并退出,按下图所示操作,可以时刻的删除dump.rdb文件(便于观察理解),再重启redis服务。

Linux下redis的相关笔记整理_第8张图片
Linux下redis的相关笔记整理_第9张图片

4、为什么上面的set值了缺查询不出来,这个需要去看appendonly文件了,

[root@192 bin]# vim appendonly.aof 

Linux下redis的相关笔记整理_第10张图片
5、删除之后,重启redis服务,再去检索,发现已查到刚刚set的值。

Linux下redis的相关笔记整理_第11张图片

补充:如果appendonly.aof人为修改或者突然断机等突发状况时。会怎么样?下面做详细的介绍:

1、我这里修改appendonly.aof文件。
Linux下redis的相关笔记整理_第12张图片
2、重启redis服务,发现redis服务启动不了。为什么呢?因为你修改了appendonly.aof文件,那么怎么启动呢?看下面一步。
Linux下redis的相关笔记整理_第13张图片
3、在第2步中,发现redis启动不了,是因为修改了文件,那么怎么处理呢?看下图:再次重启redis服务,发现启动成功,并且值也检索出来了。

Linux下redis的相关笔记整理_第14张图片
Linux下redis的相关笔记整理_第15张图片

你可能感兴趣的:(linux)