导航目录
Redis(Remote Dictionary Server)是一个开源的高性能键值存储数据库,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis以其快速、可靠和灵活的特性而受到广泛的关注和使用。
作为一个内存中的数据存储系统,Redis被设计用于提供高性能和低延迟的数据访问。它将数据存储在内存中,从而实现快速读写操作,并通过使用异步方式将数据写入磁盘来确保数据的持久性。Redis还具有一些高级功能,如发布/订阅、事务和持久性快照等,使其成为一个功能强大且灵活的数据存储解决方案。
Redis在许多场景中都得到了广泛应用。它可以用作缓存层,加速动态网站和应用程序的响应速度;它可以作为消息代理,实现实时数据处理和发布/订阅机制;它还可以用作数据存储,提供持久性的数据存储和高效的数据访问。
1、Redis安装并使用
1.1、下载安装包
官网下载地址:Download | Redis
## 下载安装包
[root@localhost softpackage]# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
## 解压压缩文件
[root@localhost softpackage]# tar -zxvf redis-6.2.6.tar.gz
1.2、重命名和移动文件
## 安装目录移动到/usr/local/目录下,
## 并将redis-6.2.6重名为redis目录,使用mv /home/redis-6.2.6 /usr/local/redis命令,因此有如下操作。
[root@localhost softpackage]# mv redis-6.2.6 /usr/local/redis
[root@localhost softpackage]# cd /usr/local/redis
[root@localhost redis]# ll
总用量 236
-rw-rw-r-- 1 root root 33624 10月 4 2021 00-RELEASENOTES
-rw-rw-r-- 1 root root 51 10月 4 2021 BUGS
-rw-rw-r-- 1 root root 5026 10月 4 2021 CONDUCT
-rw-rw-r-- 1 root root 3384 10月 4 2021 CONTRIBUTING
-rw-rw-r-- 1 root root 1487 10月 4 2021 COPYING
drwxrwxr-x 7 root root 145 10月 4 2021 deps
-rw-rw-r-- 1 root root 11 10月 4 2021 INSTALL
-rw-rw-r-- 1 root root 151 10月 4 2021 Makefile
-rw-rw-r-- 1 root root 6888 10月 4 2021 MANIFESTO
-rw-rw-r-- 1 root root 21567 10月 4 2021 README.md
-rw-rw-r-- 1 root root 93724 10月 4 2021 redis.conf
-rwxrwxr-x 1 root root 275 10月 4 2021 runtest
-rwxrwxr-x 1 root root 279 10月 4 2021 runtest-cluster
-rwxrwxr-x 1 root root 1079 10月 4 2021 runtest-moduleapi
-rwxrwxr-x 1 root root 281 10月 4 2021 runtest-sentinel
-rw-rw-r-- 1 root root 13768 10月 4 2021 sentinel.conf
drwxrwxr-x 3 root root 4096 10月 4 2021 src
drwxrwxr-x 11 root root 182 10月 4 2021 tests
-rw-rw-r-- 1 root root 3055 10月 4 2021 TLS.md
drwxrwxr-x 9 root root 4096 10月 4 2021 utils
[root@localhost redis]#
1.3、redis编译安装
## redis编译,执行make命令
[root@localhost redis]# make
## redis安装执行make install命令
[root@localhost redis]# make install
cd src && make install
make[1]: 进入目录“/usr/local/redis/src”
CC Makefile.dep
make[1]: 离开目录“/usr/local/redis/src”
make[1]: 进入目录“/usr/local/redis/src”
Hint: It's a good idea to run 'make test' ;)
INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
make[1]: 离开目录“/usr/local/redis/src”
1.4、redis启动
## 为了方便管理,将Redis6.2.6目录中的conf配置文件和常用命令移动到统一目录中。
## 切换至redis根目录,创建bin和etc文件
## 将redis.conf文件移动到/usr/local/redis/etc/目录,将mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server 文件移动到/usr/local/redis/bin/目录
[root@localhost redis]# mkdir etc
[root@localhost redis]# mkdir bin
[root@localhost redis]# mv redis.conf /usr/local/redis/etc/
[root@localhost redis]# cd src/
[root@localhost src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /usr/local/redis/bin/
[root@localhost src]# ll ../bin/
总用量 37512
-rwxrwxr-x 1 root root 735 10月 4 2021 mkreleasehdr.sh
-rwxr-xr-x 1 root root 4830464 11月 18 18:18 redis-benchmark
-rwxr-xr-x 1 root root 9521712 11月 18 18:18 redis-check-aof
-rwxr-xr-x 1 root root 9521712 11月 18 18:18 redis-check-rdb
-rwxr-xr-x 1 root root 5004792 11月 18 18:18 redis-cli
-rwxr-xr-x 1 root root 9521712 11月 18 18:18 redis-server
[root@localhost src]#
## 执行redis-server命令,启动redis服务
[root@localhost src]# cd ..
[root@localhost redis]#
[root@localhost redis]# ls
00-RELEASENOTES BUGS CONTRIBUTING deps INSTALL MANIFESTO runtest runtest-moduleapi sentinel.conf tests utils
bin CONDUCT COPYING etc Makefile README.md runtest-cluster runtest-sentinel src TLS.md
[root@localhost redis]# ./bin/redis-server
9193:C 18 Nov 2022 18:27:26.765 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
9193:C 18 Nov 2022 18:27:26.765 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=9193, just started
9193:C 18 Nov 2022 18:27:26.765 # Warning: no config file specified, using the default config. In order to specify a config file use ./bin/redis-server /path/to/redis.conf
9193:M 18 Nov 2022 18:27:26.766 * Increased maximum number of open files to 10032 (it was originally set to 1024).
9193:M 18 Nov 2022 18:27:26.766 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 9193
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
9193:M 18 Nov 2022 18:27:26.766 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
9193:M 18 Nov 2022 18:27:26.766 # Server initialized
9193:M 18 Nov 2022 18:27:26.766 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
9193:M 18 Nov 2022 18:27:26.766 * Ready to accept connections
1.5、设置后台启动redis
## 编辑redis.conf文件,将daemonize属性改为yes,执行vim /usr/local/redis/etc/redis.conf命令
[root@localhost redis]# vim /usr/local/redis/etc/redis.conf
## 执行./bin/redis-server /usr/local/redis/etc/redis.conf命令,启动redis服务
[root@localhost redis]# ./bin/redis-server /usr/local/redis/etc/redis.conf
[root@localhost redis]#
1.6、设置redis密码
## 编辑redis.conf文件,找到requirepass这个参数,若是没有增加requirepass参数并设置密码参考如下图所示,执行vim /usr/local/redis/etc/redis.conf命令
[root@localhost redis]# vim /usr/local/redis/etc/redis.conf
## 保存后,重启redis服务即可生效。
[root@localhost redis]# ps -ef|grep redis
root 9193 2154 0 18:27 pts/0 00:00:00 ./bin/redis-server *:6379
root 24406 9201 0 18:35 pts/1 00:00:00 grep --color=auto redis
[root@localhost redis]# kill -9 9193
[root@localhost redis]# ./bin/redis-server /usr/local/redis/etc/redis.conf
[root@localhost redis]# ps -ef|grep redis
root 24408 1 0 18:35 ? 00:00:00 ./bin/redis-server 127.0.0.1:6379
root 24414 9201 0 18:35 pts/1 00:00:00 grep --color=auto redis
[root@localhost redis]#
1.7、设置redis服务远程访问
## 编辑redis.conf文件,找到bind 127.0.0.1 -::1配置,将用#号注释掉即可,参考如下图所示。
[root@localhost redis]# vim /usr/local/redis/etc/redis.conf
## 然后执行ps -ef|grep redis命令,找到已启动的redis服务,使用kill命令杀掉redis服务进程。再执行./bin/redis-server /usr/local/redis/etc/redis.conf命令,启动redis服务。
[root@localhost redis]# ps -ef|grep redis
root 9193 2154 0 18:27 pts/0 00:00:00 ./bin/redis-server *:6379
root 24406 9201 0 18:35 pts/1 00:00:00 grep --color=auto redis
[root@localhost redis]# kill -9 9193
[root@localhost redis]# ./bin/redis-server /usr/local/redis/etc/redis.conf
[root@localhost redis]# ps -ef|grep redis
root 24408 1 0 18:35 ? 00:00:00 ./bin/redis-server 127.0.0.1:6379
root 24414 9201 0 18:35 pts/1 00:00:00 grep --color=auto redis
[root@localhost redis]#
1.8、redis服务的客户端连接测试
redis客户端下载
Redis 默认有16个仓库,编号从0到15。通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。
1.9、命令行使用
## 切换到 redis 目录下运行:
[root@localhost bin]# pwd
/usr/local/redis/bin
[root@localhost bin]# ls
mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server
[root@localhost bin]# ./redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set mykey rucoding
OK
127.0.0.1:6379> get mykey
"rucoding"
127.0.0.1:6379>
1.10、清理缓存
redis 清理缓存 按实际情况谨慎操作
[root@localhost bin]# pwd
/usr/local/redis/bin
[root@localhost bin]# ls
mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server
[root@localhost bin]# ./redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379>
### 查询数据库 key 的数量
127.0.0.1:6379> dbsize
(integer) 1
127.0.0.1:6379>
### 清理缓存
127.0.0.1:6379> flushall # 清空整个 Redis 服务器的key和数据 (删除所有数据库的所有 key )
OK
127.0.0.1:6379>
### 删除指定索引的值
127.0.0.1:6379> del mykey
(integer) 1
127.0.0.1:6379>
### 使用keys * 进行验证是否为空
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> exit # 退出