Linux 安装 Redis7.x
- 下载redis7
- 检查linux版本
- 检查是否有 gcc
- 什么是 gcc
- 查看 gcc 是否有安装
- 安装 redis7
- 查看默认安装目录
- 启动服务
- 连接服务
- 服务关闭
- Redis的删除卸载
- Redis数据类型
下载redis7
下载地址:https://download.redis.io/releases/
检查linux版本
[root@localhost /]# getconf LONG_BIT
64
检查是否有 gcc
什么是 gcc
查看 gcc 是否有安装
[root@localhost /]# gcc -v
bash: gcc: command not found...
Install package 'gcc' to provide command 'gcc'? [N/y]
从上面可以看到,当前并没有安装 gcc 编译器,所以安装一下:
[root@localhost /]# yum -y install gcc-c++
安装完成后查看 gcc 版本
[root@localhost /]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
...
Thread model: posix
gcc version 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
安装 redis7
首先解压缩:tar -xvf redis-7.2.2.tar.gz
然后进入到 Redis7目录执行命令 make && make install
查看默认安装目录
注意,redis-7.2.2.tar.gz只是一个软件,安装后肯定在其它的目录,比如 windows平台的软件,默认安装目录就是 C:\Program Files
Linux下的 /usr/local 类似我们 windows 系统的 C:\Program Files
[root@localhost redis-7.2.2]# cd /usr/local/bin/
[root@localhost bin]# ll
total 38396
-rwxr-xr-x. 1 root root 9457984 Nov 2 16:35 redis-benchmark
lrwxrwxrwx. 1 root root 12 Nov 2 16:35 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root 12 Nov 2 16:35 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 10186232 Nov 2 16:35 redis-cli
lrwxrwxrwx. 1 root root 12 Nov 2 16:35 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 19666304 Nov 2 16:35 redis-server
各个文件的作用如下
启动服务
启动 Redis服务的时候需要执行配置文件,为了不污染 Redis 的出厂默认配置,我们新建一个 myredis 文件夹并把 Redis 默认配置复制到此目录。
修改/myredis 目录下redis.conf 配置文件做初始化设置
ok,配置改好后,便可以执行redis-server ./redis.conf
命令启动服务了
[root@localhost myredis]# redis-server ./redis.conf
[root@localhost myredis]# ps -ef|grep redis
root 2577 1811 0 17:24 ? 00:00:00 redis-server *:6379
root 2589 2477 0 17:24 pts/0 00:00:00 grep --color=auto redis
刚才已经说了,redis默认安装在了
/usr/local/bin
目录下,也就是说随时可以使用这里面的命令
连接服务
使用redis-cli -a 123456 -p 6379
命令连接服务。
我们可以发个 ping 测试一下服务是否可用
[root@localhost myredis]# redis-cli -a 123456 -p 6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> ping
PONG
注意,因为配置了密码,上面的命令需要加上参数 -a,后面的 -p 不写,默认就是6379,如果不加参数 -a,得分两步
[root@localhost myredis]# redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
PONG
上面 还有一个警告"Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe." 这个警告其实无所谓的,不影响使用,如果就是看着不爽咋办?
其实 warning 这串输出并不是普通输出,
shell 的标准输出包含两种:
1 (标准输出)
2 (标准错误) 我们的命令,即包含1也包含2,2即是我们想要去除的提示
解决办法将标准错误去除即可,追加2>/dev/null,将标准错误丢弃即可,就没有烦人的警告了
[root@localhost myredis]# redis-cli -a 123456 2>/dev/null
127.0.0.1:6379> ping
PONG
该操作本质是将警告重定向至linux的黑洞文件
这时再新开一个命令窗口,可以看到同时有 redis-server 和 redis-cli 两个服务
[root@localhost myredis]# ps -ef|grep redis
root 2577 1811 0 17:24 ? 00:00:01 redis-server *:6379
root 2604 2477 0 17:25 pts/0 00:00:00 redis-cli -a 123456 -p 6379
root 2663 2632 0 17:28 pts/1 00:00:00 grep --color=auto redis
如果不想看到 grep 的进程可以再过滤一次嘛
[root@localhost myredis]# ps -ef|grep redis|grep -v grep
root 2577 1811 0 17:24 ? 00:00:01 redis-server *:6379
root 2604 2477 0 17:25 pts/0 00:00:00 redis-cli -a 123456 -p 6379
服务关闭
单实例关闭:直接使用 SHUTDOWN 关闭,执行lsof -i:6379
命令后发现没有该进程了
[root@localhost myredis]# redis-cli -a 123456 2>/dev/null
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> shutdown
not connected> quit
[root@localhost myredis]# lsof -i:6379
[root@localhost myredis]#
多实例关闭:使用命令 redis-cli -a 123456 shutdown
远程关闭,假设有多台 redis实例,这个命令redis-cli -a 123456 -p 6379 6733 6233 shutdown
就可以全部关闭
[root@localhost myredis]# redis-server ./redis.conf
[root@localhost myredis]# lsof -i:6379
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 4000 root 6u IPv4 72922 0t0 TCP *:redis (LISTEN)
redis-ser 4000 root 7u IPv6 72923 0t0 TCP *:redis (LISTEN)
[root@localhost myredis]# ps -ef|grep redis
root 4000 2826 0 18:39 ? 00:00:00 redis-server *:6379
root 4028 3308 0 18:39 pts/0 00:00:00 grep --color=auto redis
[root@localhost myredis]# redis-cli -a 123456 shutdown
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
[root@localhost myredis]# lsof -i:6379
[root@localhost myredis]# ps -ef|grep redis
root 4058 3308 0 18:40 pts/0 00:00:00 grep --color=auto redis
[root@localhost myredis]#
Redis的删除卸载
很简单,进入/usr/local/bin
,找到 redis-*开头的文件,全部删了就好
[root@localhost myredis]# ls -l /usr/local/bin/redis-*
-rwxr-xr-x. 1 root root 9457984 Nov 2 16:35 /usr/local/bin/redis-benchmark
lrwxrwxrwx. 1 root root 12 Nov 2 16:35 /usr/local/bin/redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root 12 Nov 2 16:35 /usr/local/bin/redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 10186232 Nov 2 16:35 /usr/local/bin/redis-cli
lrwxrwxrwx. 1 root root 12 Nov 2 16:35 /usr/local/bin/redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 19666304 Nov 2 16:35 /usr/local/bin/redis-server
[root@localhost myredis]# rm -rf /usr/local/bin/redis-*
Redis数据类型
共有十大数据类型:
String、Hash、List、Set、Zset(sorted set)
HyperLoglog、GEO、bitmap、bitfield、stream