2.1 安装redis
安装Redis是开始Redis学习之旅的第一步。在安装Redis前需要了解Redis的版本规则以选择最适合自己的版本,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版
(如2.4版、2.6版),奇数版本是非稳定版(如2.5版、2.7版),推荐使用稳定版本进行开发和在生产环境使用。linux内核也是这种奇偶版本发布。
2.1.1 POSIX系统
Redis兼容大部分
POSIX系统,包括Linux、OS X和BSD等,在这些系统中推荐直接下载Redis源代码编译安装以获得最新的稳定版本。Redis最新稳定版本的源代码可以从地址
http://download.redis.io/redis-stable.tar.gz下载。
下载安装包后解压即可使用make 命令完成编译,完整的命令如下:
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make
Redis
没有其他外部依赖,安装过程很简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,最好在编译后直接执行make install命令来将这些可执行程序复制到/usr/local/bin目录中,以便以后执行程序时可以不用输入完整的路径。
在实际运行Redis前推荐使用make test命令测试Redis是否编译正确,尤其是在编译一个不稳定版本的Redis时。
提示 除了手工编译外,还可以使用操作系统中的软件包管理器来安装Redis,比如apt-get,但目前大多数软件包管理器中的Redis的版本都较古老。考虑到Redis的每次升级都提供了对以往版本的问题修复和性能提升,使用最新版本的Redis往往可以提供更加稳定的体验。
2.1.2 不直接支持windows
Redis官方不支持Windows。2011年微软向Redis提交了一个补丁,以使Redis可以在Windows下编译运行,但被Salvatore Sanfilippo
拒绝了,原因是在服务器领域上Linux已经得到了广泛的使用,让Redis能在Windows下运行相比而言显得不那么重要。并且Redis使用了写时复制等很多操作系统相关的特性,兼容Windows会耗费太大的精力而影响Redis其他功能的开发。尽管如此微软还是发布了一个可以在Windows运行的Redis分支 ,但是考虑到其版本更新速度比较慢(截至本书交稿,其最新的版本是基于Redis 2.4进行开发的),
并不建议使用。
2.2 启动和停止redis
Redis包含的可执行文件都有哪些,下表中列出了这些程序的名
称以及对应的说明。如果在编译后执行了make install命令,这些程序会被复制到/usr/local/bin目录内,所以在命令行中直接输入程序名称即可执行。
最常使用的两个程序是
redis-server和
redis-cli,其中redis-server是Redis的服务器,启动Redis即运行redis-server;而redis-cli是Redis自带的Redis命令行客户端,"cli"代表"command line interface",是学习Redis的重要工具。
2.2.1 启动redis
启动Redis有直接启动和通过初始化脚本启动
两种方式,分别适用于开发环境和生产环境。
1.直接启动(建议开发环境)
直接运行redis-server即可启动Redis,十分简单:
注:Redis服务器默认会使用6379端口 ,通过--port参数可以自定义端口号:$redis-server --port 1111
2.通过初始化脚本启动Redis(建议生产环境)
在Linux系统中可以通过初始化脚本启动Redis,使得Redis能
随系统自动运行,在生产环境中推荐使用此方法运行Redis,这里以Ubuntu和Debian发行版为例进行介绍。在Redis源代码目录的utils文件夹中有一个名为redis_init_script的初始化脚本文件。
我们需要配置Redis的运行方式和持久化文件、日志文件的存储位置等,具体步骤如下。
(1)配置初始化脚本。首先将初始化脚本复制到/etc/init.d目录中,文件名为redis_端口号,其中端口号表示要让Redis监听的端口号,客户端通过该端口连接Redis。然后修改脚本第6行的REDISPORT变量的值为同样的端口号。
(2)建立需要的文件夹。/etc/redis和/var/redis/端口号。
(3)修改配置文件。首先将配置文件模板复制到/etc/redis目录中,以端口号命名(如“6379.conf”),然后按照下图对其中的部分参数进行编辑。
现在就可以使用/etc/init.d/redis_端口号start来启动Redis了,而后需要执行下面的命令使
Redis随系统自动启动:
$sudo update-rc.d redis_端口号defaults
2.2.2 停止Redis
考虑到Redis有可能正在将内存中的数据同步到硬盘中,
强行终止Redis进程可能会导致数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:
$redis-cli SHUTDOWN
当Redis收到SHUTDOWN命令后,会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。
Redis可以妥善处理SIGTERM信号,所以
使用“kill Redis进程的PID”也可以正常结束Redis,效果与发送SHUTDOWN命令一样。
2.3 Redis命令行客户端
还记得我们刚才编译出来的redis-cli程序吗?redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,也是我们学习和测试Redis的重要工具。
2.3.1 发送命令
通过 redis-cli向Redis发送命令有两种方式,第一种方式是将命令作为redis-cli的参数执行,比如在2.2.2节中用过的redis-cli SHUTDOWN。redis-cli执行时会自动按照默认配置(服务器地址为127.0.0.1,端口号为6379)连接Redis,通过-h和-p参数可以自定义地址和端口号:
$redis-cli -h 127.0.0.1 -p 6379
Redis提供了PING命令来测试客户端与Redis的连接是否正常,如果连接正常会收到回复
PONG。如:
$redis-cli PING
PONG
第二种方式是不附带参数运行redis-cli,这样会进入交互模式,可以自由输入命令,例如:
$redis-cli
redis 127.0.0.1:6379> PING
PONG
redis 127.0.0.1:6379> ECHO hi
"hi"
2.3.2 命令返回值
在大多数情况下,执行一条命令后我们往往会关心命令的返回值。
命令的返回值有
5种类型,对于每种类型redis-cli的展现结果都不同,下面分别说明。
1.状态回复
状态回复(status reply)是最简单的一种回复,比如向Redis发送SET命令设置某个键的值时,Redis会回复状态OK表示设置成功。另外之前演示的对PING命令的回复PONG也是状态回复。状态回复直接显示状态信息,例如:
redis>PING
PONG
2.错误回复
当出现命令不存在或命令格式有错误等情况时Redis会返回错误回复(error reply)。错误回复以(error)开头,并在后面跟上错误信息。如执行一个不存在的命令:
redis>ERRORCOMMEND
(error) ERR unknown command 'ERRORCOMMEND'
3.整数回复
Redis虽然没有整数类型,但是却提供了一些用于整数操作的命令,如递增键值的INCR命令会以整数形式返回递增后的键值。除此之外,一些其他命令也会返回整数,如可以获取当前数据库中键的数量的DBSIZE命令等。整数回复(integer reply)以(integer)开头,并在后面跟上整数数据:
redis>INCR foo
(integer) 1
4.字符串回复
字符串回复(bulk reply)是最常见的一种回复类型,当请求一个字符串类型键的键值或一个其他类型键中的某个元素时就会得到一个字符串回复。
字符串回复以双引号包裹,状态回复也是字符串形式,但是没有双引号包裹:
redis>GET foo
"1"
特殊情况是当请求的键值不存在时会得到一个空结果,显示为(nil)。如:
redis>GET noexists
(nil)
5.多行字符串回复
多行字符串回复(multi-bulk reply)同样很常见,如当请求一个非字符串类型键的元素列表时就会收到多行字符串回复。多行字符串回复中的每行字符串都以一个序号开头,如:
redis> KEYS *
1) "bar"
2) "foo"
redis也是提供了5种数据类型的支持。
2.4 配置
2.2.1节中我们通过redis-server的启动参数port设置了Redis的端口号,除此之外Redis还支持其他配置选项,如是否开启持久化、日志级别等。由于可以配置的选项较多,通过启动参数设置这些选项并不方便,所以Redis支持通过配置文件来设置这些选项。启用配置文件的方法是在启动时将配置文件的路径作为启动参数传递给redis-server,如:
redis-server/path/to/redis.conf
通过
启动参数传递同名的配置选项会
覆盖配置文件中相应的参数,就像这样:
redis-server/path/to/redis.conf --loglevel warning
Redis提供了一个配置文件的模板redis.conf,位于源代码目录的根目录中。
除此之外还可以在Redis运行时通过
CONFIG SET 命令在不重新启动Redis的情况下动态修改部分Redis配置。就像这样:
redis>CONFIG SET loglevel warning
OK
并不是所有的配置都可以使用CONFIG SET命令修改。同样在运行的时候也可以使用CONFIG GET命令获得Redis当前的配置情况,例如:
redis>CONFIG GET loglevel
1) "loglevel"
2) "warning"
其中第一行字符串回复表示的是选项名,第二行即是选项值。
2.5 多数据库
Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了
多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库。
每个数据库对外都是以一个
从0开始的递增数字命名,Redis默认支持16个数据库,可以通过配置参数databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库,不过可以随时使用SELECT命令更换数据库,如要选择1号数据库:
redis>SELECT 1
OK
redis [1]>GET foo
(nil)
然而这些以数字命名的数据库又与我们理解的数据库有所
区别。首先Redis不支持自定义数据库的名字,每个数据库都
以编号命名,开发者必须自己记录哪些数据库存储了哪些数据。另外Redis也不支持为每个数据库设置不同的访问密码,所以
一个客户端要么可以访问全部数据库,要么连一个数据库也没有权限访问。最重要的一点是多个数据库之间并不是完全隔离的,
比如FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据。
综上所述,这些数据库更像是一种命名空间,而不适宜存储不同应用程序的数据。比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但
不适宜使用0号数据库存储A应用的数据而使用1号数据库存储B应用的数据,不同的应用应该使用不同的Redis实例存储数据,因为隔离性不好。由于Redis非常轻量级,一个空Redis实例占用的内存只有1MB左右,所以不用担心多个Redis实例会额外占用很多内存。
- 大小: 122 KB
- 大小: 45 KB
- 大小: 129.6 KB
分享到:
相关推荐
2. **编译源码**:在项目根目录下,运行以下命令来编译源码: ``` make ``` 3. **安装到系统路径**:编译成功后,你可以选择将这些工具安装到系统的可执行路径,如`/usr/local/bin`,这样就可以在任何目录下直接...
2. **服务化**:为了使Redis在系统启动时自动运行,可以将`redis-server.exe`配置为Windows服务。这可以通过命令行工具`sc create`或使用`.msi`安装包实现。 3. **数据持久化**:Redis支持多种持久化方式,包括RDB...
命令行中输入`ruby redis-trib.rb create --replicas 1 <node-1> <node-2> ... <node-n>`,其中`<node-x>`替换为各个Redis实例的IP地址和端口号。 `redme.txt`文件通常是提供关于软件的基本使用说明或注意事项。在...
5. **编译与安装**:执行`make`进行编译,然后`make install`进行安装。 6. **启动Redis**:安装完成后,可以在`/usr/local/bin`或指定的安装路径下找到`redis-server`命令启动Redis服务。 接下来是`redis-3.0.0....
安装完成后,运行msys2的MinGW64 Shell,这将打开一个命令行窗口。 第二步,更新msys2的包列表和安装必要的工具。在命令行中输入以下命令: ```bash pacman -Syu pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64...
redis安装 1: 下载redis-5.0.4.tar.gz 2: 解压源码并进入目录 tar zxvf redis-5.0.4.tar.gz cd redis-5.0.4 3: 不用configure 4: 直接make (如果是32位机器 make 32bit) 查看linux机器是32位还是64位的方法:...
$redis->subscribe(['channel1', 'channel2'], function($redis, $channel, $message) { echo "Message from $channel: $message\n"; }); // 发布者 $redis->publish('channel1', 'Hello, world!'); ``` - 事务...
在使用 `redis-full-check` 之前,确保你已经安装了 Redis 客户端库(如 `redis-cli`)和工具本身。运行该工具时,通常需要提供 Redis 实例的 IP 地址、端口和认证信息(如果配置了密码)。例如,基本用法可能如下:...
2. **兼容性增强**:尽管可能存在与v2版本的不兼容问题,但v3.0.0可能引入了对新Redis版本的支持,以及对更多Redis特性或命令的处理。 3. **错误处理和日志记录**:新版本可能改善了错误处理机制,提供了更详细的...
在Windows上运行Redis可能与Linux环境有所不同,但仍然提供了相同的核心功能。 1. **Redis的特性**: - **内存存储**:Redis的所有数据都存储在内存中,以实现快速的数据读写。 - **持久化**:通过RDB(快照)和...
Redis是一种高性能的键值对数据存储系统,常...安装和配置Redis需要了解其基本的运行机制和配置选项,以便根据实际需求进行定制。在不断升级的版本中,Redis持续提供更好的性能和更多功能,满足用户不断增长的需求。
在Windows环境下,Redis的安装和使用与在Linux系统中有所不同。本篇文章将详细讲解基于标题"Windows版本Redis-x64-5.0.14安装包"的Redis安装过程,以及如何在Windows上配置和使用Redis。 首先,你需要下载Redis的...
- `redis-cli`: 官方提供的命令行客户端,用于与Redis服务器交互。 - `redis.conf`: 默认配置文件,用户可以根据需求进行修改。 - `redis-benchmark`: 性能测试工具,用于测量Redis的读写速度。 - `redis-check-aof`...
2. **Windows上的安装与配置**: - 解压"redis-windows-7.2.4.zip",找到`redis-server.exe`启动文件。 - 运行`redis-server.exe`,默认情况下,Redis监听6379端口。 - 可以通过配置文件`redis.windows.conf`修改...
在Linux系统中安装Redis是一个常见的任务,特别是在搭建服务器或开发基于Redis的数据缓存应用时。Redis是一个开源的、高性能的键值对存储系统,适用于数据缓存、消息队列等多种场景。本文将详细介绍如何在Linux上...
在提供的“redis-7.0.11-windows.zip”压缩包中,包含了在 Windows 平台上安装和运行 Redis 所需的文件。以下是每个文件的用途: 1. **install_redis.cmd**:这是一个批处理脚本,用于帮助用户快速安装 Redis 服务...
总之,Redis 7.0.5在Windows 11上的运行,不仅满足了开发者在非Linux环境下使用Redis的需求,还带来了与最新操作系统兼容的稳定性和高性能。无论是作为数据库、缓存还是消息中间件,Redis都是现代Web应用程序的重要...
4. **编译与安装**:配置成功后,执行`make`命令进行编译,然后使用`sudo make install`将Redis安装到系统默认路径(通常是/usr/local/)。如果需要自定义安装路径,可以在配置阶段指定`--prefix`参数。 5. **启动...
执行`redis-trib.rb create --replicas 1 <node-1> <node-2> ...`命令可以创建一个具有指定副本数量的集群。 2. `redis-cli`:这是Redis的命令行客户端。你可以通过它连接到运行的Redis服务器,执行各种命令,如...
2. 运行安装向导:双击msi文件,启动安装向导,按照提示进行操作。 3. 选择安装类型:可以选择典型安装或自定义安装。典型安装会按照默认配置安装,自定义安装则可以指定安装路径和其他选项。 4. 设置配置:在自定义...