Redis服务日程运维知识点

启动Redis

在Windows中,Redis可以作为普通的程序启动,也可以注册为Windows服务进程启动。如果服务器是Windows server 2012或者更高版本,可以通过服务管理器来管理Redis服务。如果是在Windows电脑上开始时候使用,作为普通的程序启动即可。

在Linux中,我们以CentOS为例,也可以下载Redis的压缩包,解压运行;也可以作为服务进程,通过systemctl enable xxxx 和 service xxxx start来管理和启动。

我们以压缩包解压运行为例,解压后,进入到redis目录下,执行redis-server.exe redis.conf即可启动Redis。

1
2
cd redis-6.2.6
redis-server.exe redis.conf

在CentOS下,这个程序一般是放在src中的,我们可以进入到src目录下,执行make命令编译,然后执行src/redis-server即可启动Redis。

1
2
3
cd redis-6.2.6

src/redis-server redis.conf

退出Redis

在CentOS中,我们可以通过查看Redis的进程,然后使用kill命令退出Redis。

1
2
ps -ef | grep redis
kill -9 pid

当然,这是下下策,优雅的退出Redis也是可以的,我们通过redis-cli来实现:

1
redis-cli -h 127.0.0.1 -p 6379 shutdown

在Windows中,我们可以通过任务管理器来退出Redis。

访问灵活性与安全性

redis是一个高性能的key-value数据库,它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。

redis支持多种访问方式,包括命令行、客户端、REST API等。

我们需要在不同的场景下选择合适的访问方式,以保证访问的灵活性和安全性。

访问redis的方式

redis的访问方式有很多种,我们需要根据不同的场景选择合适的访问方式。

例如,我们可以使用命令行进行简单的访问,也可以使用客户端进行批量操作。
我们也可以使用REST API进行批量操作,也可以使用客户端进行加密。

我们还可以使用redis的官方客户端进行访问,也可以使用第三方客户端进行访问。

  1. 命令行

命令行是redis最基本的访问方式,它支持多种命令,如set、get、del、keys等。

命令行的优点是简单易用,缺点是无法进行批量操作,而且命令行的访问方式不适合在生产环境中使用。

  1. 客户端
    客户端是redis的官方客户端,它支持多种语言,如Python、Java、C++等。

客户端的优点是支持批量操作,而且客户端的访问方式可以进行加密,缺点是客户端的安装和配置比较麻烦。

  1. REST API

REST API是redis的官方API,它支持多种语言,如Python、Java、C++等。
REST API的优点是支持批量操作,而且REST API的访问方式可以进行加密,缺点是REST API的安装和配置比较麻烦。

避免绑定127.0.0.1

我们以redis-6.2.6为例,在redis.conf中添加如下配置:

1
bind 0.0.0.0

这样就可以在任何IP上访问redis了。

配置密码

1
requirepass 123456

这样访问redis的时候就需要输入密码了。

配置持久化

1
2
# 配置持久化
appendonly yes

这样redis就会把数据写入到appendonly.aof文件中,这样即使redis重启,数据也不会丢失。

Redis的高级应用

redis的高级应用有很多,我们需要根据不同的场景选择合适的应用。

缓存

redis的缓存功能是redis最常用的功能之一,它可以将数据存储在内存中,这样可以提高访问速度。

我们可以使用redis的set命令将数据存储在内存中,然后使用get命令获取数据。

1
2
set key value
get key

分布式锁

redis的分布式锁是redis最常用的功能之一,它可以保证在分布式环境下,只有一个进程可以获取锁。
我们可以使用redis的setnx命令获取锁,然后使用del命令释放锁。

1
2
setnx lock_key value
del lock_key

发布订阅

redis的发布订阅功能是redis最常用的功能之一,它可以实现消息的发布和订阅。

我们可以使用redis的publish命令发布消息,然后使用subscribe命令订阅消息。

1
2
publish channel message
subscribe channel

事务

redis的事务功能是redis最常用的功能之一,它可以保证在一个事务中,所有的命令都成功执行,或者都失败。

我们可以使用redis的multi命令开始一个事务,然后使用exec命令执行事务。

1
2
3
multi
set key value
exec

限流

redis的限流功能是redis最常用的功能之一,它可以保证在一个时间段内,只有一定数量的请求可以访问。

我们可以使用redis的incr命令将请求次数加1,然后使用expire命令设置过期时间。

1
2
incr key
expire key 10

分布式队列

redis的分布式队列是redis最常用的功能之一,它可以实现消息的发布和订阅。

我们可以使用redis的lpush命令将消息放入队列,然后使用rpop命令获取消息。

1
2
lpush queue message
rpop queue

配置主从复制

同时运行多台redis,其中一台作为主节点,其他的作为从节点,这样就可以实现数据的备份和负载均衡了。

本文不具体展开,有兴趣的可以自行了解。

配置哨兵

哨兵是redis的高可用方案,哨兵可以监控redis的状态,如果redis挂了,哨兵会自动将从节点切换为主节点,这样就可以保证redis的高可用了。


Redis服务日程运维知识点
https://jycpp.github.io/20-10-05-Redis服务日程运维知识点.html
作者
Jet Yan
发布于
2020年10月5日
许可协议