【NoSQL】Redis安装

本文详细介绍了在CentOS-7-x86_64-Minimal系统上安装Redis的两种方法:yum在线安装和源码安装。包括安装步骤、启动服务、验证测试及如何通过服务脚本启动Redis。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

     基于CentOS-7-x86_64-Minimal 系统安装

一、yum在线安装

  1、安装( 此网站上  http://rpmfind.net/  搜索Redis,选择合适的安装包,复制链接即可

[root@localhost ~]# yum install http://rpmfind.net/linux/epel/7/x86_64/Packages/r/redis-3.2.12-2.el7.x86_64.rpm
已加载插件:fastestmirror
redis-3.2.12-2.el7.x86_64.rpm                                                                                                                       | 544 kB  00:00:01     
正在检查 /var/tmp/yum-root-kCnjBk/redis-3.2.12-2.el7.x86_64.rpm: redis-3.2.12-2.el7.x86_64
/var/tmp/yum-root-kCnjBk/redis-3.2.12-2.el7.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 redis.x86_64.0.3.2.12-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===========================================================================================================================================================================
 Package                          架构                              版本                                       源                                                     大小
===========================================================================================================================================================================
正在安装:
 redis                            x86_64                            3.2.12-2.el7                               /redis-3.2.12-2.el7.x86_64                            1.4 M

事务概要
===========================================================================================================================================================================
安装  1 软件包

总计:1.4 M
安装大小:1.4 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : redis-3.2.12-2.el7.x86_64                                                                                                                              1/1 
  验证中      : redis-3.2.12-2.el7.x86_64                                                
<think>嗯,用户想了解Redis中的事务和发布订阅功能的使用指南。首先,我需要回顾一下Redis事务的基本概念。根据引用[2]和[3],Redis事务是一组命令的集合,具有隔离性和原子性。事务中的命令按顺序执行,不会被其他客户端打断,但要注意的是,Redis事务并不是严格意义上的原子操作,因为如果在执行过程中出现错误,只有部分命令可能被执行。 接下来是事务的使用步骤。用户可能需要知道如何开始事务(MULTI)、添加命令(如SET, INCR)、执行事务(EXEC)或取消事务(DISCARD)。还需要提到WATCH命令,用于监控键的变化,实现乐观锁,这在引用[5]中的Java代码示例里也有体现。比如,当使用WATCH监控某个键时,如果在事务执行前该键被修改,事务会被取消。 然后是事务的原子性和错误处理部分。需要区分命令入队错误和运行时错误。入队时的错误,比如命令不存在,会导致整个事务被拒绝;而运行时错误,比如对字符串进行INCR操作,只会导致该命令失败,其他命令仍会执行。这一点需要特别说明,避免用户误解。 关于发布订阅功能,这部分可能在引用中没有详细提到,但根据我的知识,Redis的发布订阅是一种消息通信模式,包括发布者、频道和订阅者。需要介绍PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令,以及使用场景,比如实时消息系统、事件通知等。还要提到订阅者如何监听频道,发布者如何发送消息,以及模式匹配订阅的使用方法。 结合引用中的信息,比如引用[4]提到Redis的应用场景包括消息队列,但发布订阅和列表实现的消息队列有所不同。发布订阅是即时的,而列表更适合持久化消息。需要解释两者的区别,帮助用户理解何时选择哪种方式。 用户可能需要代码示例,但根据用户提供的引用[4]和[5],特别是引用[5]中的Java代码,可以提供一个类似的事务示例,展示如何在Spring Data Redis中使用事务支持。同时,发布订阅的示例可以通过命令行或代码来演示,比如订阅频道的命令和发布消息的命令。 最后,注意事项部分需要总结事务和发布订阅的局限性。比如事务不支持回滚,发布订阅的消息是即时的,没有持久化,订阅者断开后会丢失消息等。这些是用户在实际使用中需要注意的地方。 相关问题部分,需要结合用户可能遇到的后续问题,比如事务的原子性保证、与关系型数据库事务的区别、发布订阅和消息队列的对比,以及如何实现分布式锁等。这些问题可以帮助用户深入理解Redis的功能和应用场景。</think>### Redis 事务与发布订阅功能使用指南 #### 一、Redis 事务 ##### 1. 事务特性 - **原子性**:事务中的命令要么全部执行,要么全部不执行(但注意:若运行时出现错误,仅失败的命令不会生效,其他命令仍会执行)[^3] - **隔离性**:事务执行过程中不会被其他客户端请求打断[^3] - **无回滚机制**:与传统数据库不同,Redis 事务不支持回滚操作,需开发者自行处理异常 ##### 2. 事务操作命令 ```bash # 开启事务 MULTI # 添加命令到队列(示例) SET key1 "value1" INCR counter ZADD rankings 100 "userA" # 执行事务 EXEC # 取消事务 DISCARD ``` ##### 3. 监控机制(WATCH) 通过 `WATCH` 实现乐观锁,监控键值变化: ```bash WATCH key1 # 监控键 MULTI SET key1 "new_value" EXEC # 若其他客户端修改了 key1,此处事务自动取消 ``` 引用示例代码中的事务实现:[^5] ```java redisTemplate.execute(new SessionCallback<Object>() { @Override public Object execute(RedisOperations operations) { operations.watch("key1"); operations.multi(); // ... 事务操作 operations.exec(); // 提交事务 } }); ``` ##### 4. 错误处理 - **命令入队错误**(如语法错误):整个事务拒绝执行 - **运行时错误**(如对字符串执行 `INCR`):仅该命令失败,其他命令正常执行[^2] --- #### 二、发布订阅(Pub/Sub) ##### 1. 核心命令 | 命令 | 说明 | |----------------------|-----------------------------| | `SUBSCRIBE channel` | 订阅指定频道 | | `PSUBSCRIBE pattern` | 按模式匹配订阅(支持通配符 `*`)| | `PUBLISH channel msg`| 向频道发布消息 | | `UNSUBSCRIBE` | 取消订阅 | ##### 2. 操作示例 ```bash # 客户端A订阅频道 SUBSCRIBE news # 客户端B发布消息 PUBLISH news "Redis 6.0 released!" # 客户端A接收结果: # 1) "message" # 2) "news" # 3) "Redis 6.0 released!" ``` ##### 3. 特性说明 - **实时性**:消息即时推送,无持久化存储 - **无确认机制**:订阅者离线期间的消息会丢失 - **应用场景**:实时通知、聊天系统、状态广播[^4] --- #### 三、对比与注意事项 | 特性 | 事务 | 发布订阅 | |---------------------|-----------------------------|-------------------------| | 数据持久化 | 支持 | 不支持 | | 网络影响 | 命令批量发送减少网络开销 | 实时推送增加网络负载 | | 典型应用场景 | 计数器更新、多命令原子操作[^4] | 实时消息推送、事件通知 | **重要注意事项**: 1. 事务中避免耗时操作,会阻塞其他请求 2. 发布订阅需配合其他机制实现消息持久化 3. 事务的 `WATCH` 可防止数据竞争,但需合理设置超时 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值