开始使用Redis

评论 0 浏览 0 2023-04-24

如何使用Redis启动和运行

这是 Redis 入门指南。您将学习如何安装、运行和试验 Redis 服务器进程。

安装Redis

你如何安装Redis取决于你的操作系统,以及你是否愿意与Redis Stack和Redis UI捆绑安装。请看下面最适合你需要的指南:

一旦你的Redis启动并运行,并且可以使用redis-cli连接,你就可以继续下面的步骤。

使用CLI探索Redis

外部程序使用TCP套接字和Redis特定协议与Redis对话。这个协议是在不同编程语言的Redis客户端库中实现的。然而,为了让Redis更加简单,Redis提供了一个命令行工具,可以用来向Redis发送命令。这个程序被称为redis-cli

为了检查Redis是否正常工作,首先要做的是使用redis-cli发送一个PING命令:

$ redis-cli ping
PONG

运行redis-cli,后面跟一个命令名称及其参数,将把这个命令发送到运行在6379端口的localhost的Redis实例。你可以改变redis-cli所使用的主机和端口--只需尝试--help选项来检查使用信息。

另一种有趣的运行redis-cli的方式是没有参数:程序将以互动模式启动。你可以输入不同的命令并看到它们的回复。

$ redis-cli
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379> set mykey somevalue
OK
redis 127.0.0.1:6379> get mykey
"somevalue"

在这一点上,你能够与Redis对话。现在是暂停一下本教程的时候了,开始Redis的数据类型教程,以便学习一些Redis命令。否则,如果你已经知道一些基本的Redis命令,你可以继续阅读。

保护 Redis

默认情况下,Redis 绑定了所有接口,并且完全没有认证。如果你在一个非常受控制的环境中使用Redis,与外部互联网隔开,一般来说,远离攻击者,这很好。然而,如果一个未经加固的Redis暴露在互联网上,这就是一个很大的安全问题。如果你不能100%确定你的环境是安全的,请检查以下步骤,以使Redis更加安全,这些步骤是按照提高安全性的顺序列出的。

  1. 确保 Redis 用于侦听连接的端口(默认情况下为 6379,如果您在集群模式下运行 Redis,则为 16379,对于 Sentinel 则为 26379)被防火墙保护,这样就无法从外界联系 Redis。
  2. 使用设置bind指令的配置文件,以保证Redis只监听你正在使用的网络接口。例如,如果你只是从同一台计算机的本地访问Redis,那么只有环回接口(127.0.0.1),以此类推。
  3. 使用requirepass选项是为了增加一个额外的安全层,这样客户就需要使用AUTH命令进行验证。
  4. 如果您的环境需要加密,请使用spiped或其他SSL隧道软件,以便对Redis服务器和Redis客户机之间的通信进行加密。

请注意,一个暴露在互联网上的Redis实例在没有任何安全保障的情况下是很容易被利用的,所以请确保你了解上述情况并至少应用防火墙层。在防火墙到位后,尝试从外部主机与redis-cli连接,以证明自己的实例实际上是无法到达的。

从您的应用程序使用 Redis

当然,仅仅从命令行界面使用Redis是不够的,因为目标是在你的应用程序中使用它。为了做到这一点,你需要下载并安装一个适合你的编程语言的Redis客户端库。 你会在这个页面上找到一个适合不同语言的客户端的完整列表

例如,如果你碰巧使用Ruby编程语言,我们最好的建议是使用Redis-rb客户端。 你可以使用gem install redis命令来安装它。

这些说明是针对Ruby的,但实际上许多流行语言的库客户端看起来非常相似:你创建一个Redis对象并执行调用方法的命令。一个使用Ruby的简短交互式例子:

>> require 'rubygems'
=> false
>> require 'redis'
=> true
>> r = Redis.new
=> #<Redis client v4.5.1 for redis://127.0.0.1:6379/0>
>> r.ping
=> "PONG"
>> r.set('foo','bar')
=> "OK"
>> r.get('foo')
=> "bar"

Redis的持久性

你可以在这个页面上了解Redis的持久性是如何工作的,然而对于快速入门来说,重要的是要了解,默认情况下,如果您使用默认配置启动 Redis,Redis会不时地自发保存数据集(例如在如果您的数据至少有 100 次更改,则至少需要五分钟),因此,如果您希望数据库在重启后持久保存并重新加载,请确保每次要强制执行数据集快照时手动调用SAVE 命令。否则请确保使用SHUTDOWN命令关闭数据库:

$ redis-cli shutdown

这样,Redis将确保在退出前将数据保存在磁盘上。 强烈建议阅读持久化页面,以便更好地了解Redis持久化的工作方式。

更加正确地安装Redis

从命令行运行 Redis 只是为了破解或开发。然而,在某些时候,您将有一些实际的应用程序要在真实的服务器上运行。对于这种用法,您有两种不同的选择:

  • 使用屏幕运行Redis。
  • 使用 init 脚本以正确的方式在 Linux 机器中安装 Redis,以便在重新启动后一切都将重新正常启动。

强烈建议使用init脚本进行正确的安装。 以下说明可用于在基于Debian或Ubuntu的发行版中使用Redis 2.4版或更高版本的init脚本进行正确的安装。

我们假设你已经在/usr/local/bin下复制了redis-serverredis-cli的可执行文件。

  • 创建一个目录,将你的Redis配置文件和你的数据存放在里面:

      sudo mkdir /etc/redis
      sudo mkdir /var/redis
    
  • 将Redis发行版中utils目录下的init脚本复制到/etc/init.d。我们建议用你运行这个Redis实例的端口名称来调用它。比如说:

      sudo cp utils/redis_init_script /etc/init.d/redis_6379
    
  • 编辑init脚本。

      sudo vi /etc/init.d/redis_6379
    

确保根据你使用的端口修改REDISPORT。 pid文件的路径和配置文件的名称都取决于端口号。

  • 将你在Redis发行版根目录下找到的模板配置文件复制到/etc/redis/,使用端口号作为名称,例如:

      sudo cp redis.conf /etc/redis/6379.conf
    
  • /var/redis内创建一个目录,该目录将作为该Redis实例的数据和工作目录:

      sudo mkdir /var/redis/6379
    
  • 编辑配置文件,确保进行以下修改:

    • daemonize设置为 "是"(默认情况下设置为 "否")。
    • pidfile设为/var/run/redis_6379.pid(如果需要的话,修改端口)。
    • 相应地改变port。在我们的例子中,不需要这样做,因为默认的端口已经是6379。
    • 设置你喜欢的logle级别
    • logfile设为/var/log/redis_6379.log
    • dir设为/var/redis/6379(非常重要的一步!)。
  • 最后使用以下命令将新的Redis init脚本添加到所有默认的运行级别中:

      sudo update-rc.d redis_6379 defaults
    

你完成了!现在您可以尝试运行您的实例:

sudo /etc/init.d/redis_6379 start

确保一切都在按预期工作:

  • 试着用 redis-cli 来 ping 你的实例吧。
  • redis-cli save做一个测试性保存,并检查转储文件是否正确地存储到/var/redis/6379/中(你应该找到一个名为dump.rdb的文件)。
  • 检查你的Redis实例是否正确地在日志文件中进行了记录。
  • 如果是一台新的机器,你可以在没有问题的情况下进行尝试,确保在重新启动后,一切都仍然正常。

注意:上面的说明并不包括所有你可以改变的Redis配置参数,例如,使用AOF持久性而不是RDB持久性,或者设置复制,等等。 请确保阅读示例redis.conf文件(该文件有大量注释)。

最后更新2023-08-12
0 个评论
标签