* 使用Docker方式安装Redis
提前部署docker环境,这一点不多说,请参考docker安装文章,本文安装Redis版本为6.0
* Redis是什么?
Redis是一种内存数据结构存储系统,也被称为远程字典服务器,是一款开源的高性能键值对存储数据库。
它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,可以满足各种应用的需求。
Redis支持多种扩展方式,可以通过主从复制、哨兵、集群等方式来实现高可用和高性能。
Redis的特点包括高性能、数据持久化、支持事务、发布/订阅、Lua脚本等。
因此,Redis被广泛应用于缓存、消息队列、计数器、排行榜、实时消息等场景。
* 为什么要用Redis
Redis是一种高性能的键值对存储系统,因此可以用于处理许多用例,包括:
- 缓存:Redis可以将经常使用的数据缓存在内存中,以提高访问速度,从而加快应用程序的响应时间。
- 会话管理:Redis可以存储会话数据,这样在负载均衡器后的多个服务器之间共享会话数据就更加容易了。
- 计数器:由于Redis的高性能和原子性操作,在处理计数器等应用时,Redis是非常有用的。
- 队列:Redis可以被用来实现消息队列系统,以便于在应用程序的不同部分之间传递消息。
- 排行榜:Redis可以用于排序,例如计算一个用户在社交网络上的排名。
总之,Redis可以被用于任何需要高性能、可扩展性和灵活性的应用程序。
1.下载要使用的Redis镜像
可以使用docker pull redis
命令获取镜像,默认为最新版。也可以使用docker pull redis:标签
下载指定版本镜像。
可以在docker镜像仓库获取redis镜像
docker pull redis:6.0
2.使用docker启动Redis容器
docker run -itd --name redis-01 -p 6379:6379 redis:6.0
- it表示在终端交互式操作
- d表示在后台运行
- –name指定容器名称
- -p表示容器端口映射到宿主机端口
通过docker ps
命令可以查看启动的容器
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ea3ca1926781 redis:6.0 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis-01
通过docker logs
观察启动情况
# docker logs redis-01 1:C 03 May 2023 01:29:00.767 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1:C 03 May 2023 01:29:00.767 # Redis version=6.0.16, bits=64, commit=00000000, modified=0, pid=1, just started 1:C 03 May 2023 01:29:00.767 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 6.0.16 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 1 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 1:M 03 May 2023 01:29:00.768 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 1:M 03 May 2023 01:29:00.768 # Server initialized 1:M 03 May 2023 01:29:00.769 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled (set to 'madvise' or 'never'). 1:M 03 May 2023 01:29:00.769 * Ready to accept connections
如果出现上述日志代表redis启动成功,如果失败则查看具体原因
3.通过exec进入Redis容器
启动容器后,可以使用docker exec
命令进入到容器内部,执行相关操作
docker exec -it redis-01 /bin/bash
- exec表示在运行的容器中执行命令
- it表示以终端交互的方式执行命令
- /bin/bash表示需要指定的命令
- 运行结果如下所示:
[root@localhost ~]# docker exec -it redis-01 /bin/bash root@ea3ca1926781:/data#
进入容器后可通过redis-cli
命令连接容器内的redis服务器,可通过set
创建变量,get
获取变量的值
root@ea3ca1926781:/data# redis-cli 127.0.0.1:6379> set val 1 OK 127.0.0.1:6379> get val "1" 127.0.0.1:6379>
可使用exit
命令退出redis服务器
127.0.0.1:6379> exit root@ea3ca1926781:/data#
如果要退出容器则再输入一次exit
命令即可。
可通过redis-cli --version
和redis-server --version
命令查看redis客户端和服务端版本
root@ea3ca1926781:/data# redis-cli --version redis-cli 6.0.16 root@ea3ca1926781:/data# redis-server --version Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=281f24c34ac9a20
4.控制Redis服务器
可通过docker [start|stop|restart] redis-01
控制redis服务器状态
5.Redis服务端和客户端
Redis是基于键值对存储的NoSQL数据库,其中的数据是存储在Redis服务器里的。
一个Redis服务器可同时与多个客户端创建连接,每个客户端都能像服务器发送命令请求,而服务器在收到命令请求后能向客户端返回结果。
可通过redis-cli
命令创建客户端