redis学习笔记

精通redis要掌握哪些概念和知识

要精通 Redis,您需要掌握以下概念和知识:

Redis 数据结构:Redis 支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合。您需要了解每种数据结构的特点、用途和常见操作。
Redis 持久化:Redis 可以使用两种持久化方式来保护数据,分别是快照持久化和日志持久化。您需要了解每种持久化方式的优缺点、配置方法和操作流程。
Redis 集群:当需要处理海量数据时,您需要了解如何使用 Redis 集群来扩展 Redis 数据库,以提高性能和可用性。
Redis 事务:Redis 支持事务操作,可以将一组命令打包在一起并一起执行。您需要了解 Redis 事务的用途、操作方式和异常处理机制。
Redis 高级特性:Redis 还支持许多高级特性,例如发布/订阅、Lua 脚本、管道和流水线。您需要了解这些特性的用途、操作方式和最佳实践。
Redis 安全:当需要在生产环境中使用 Redis 时,您需要了解如何保护 Redis 数据库和客户端免受各种安全威胁,例如网络攻击和数据泄露。
Redis 性能优化:Redis 作为一个高性能的 NoSQL 数据库,有许多优化技巧可以提高其性能。您需要了解这些技巧,并根据实际需求对 Redis 进行适当的配置和优化。

以上是 Redis 的一些核心概念和知识点,精通这些概念和知识可以让您更好地掌握 Redis,并能够使用 Redis 构建高性能、可靠的应用程序。

开始

windows

修改密码

redis-cli进入控制台(Windows可以进如redis安装目录 D:\Program Files\Redis 双击redis-cli.exe进入redis控制台)
config set requirepass 123456

获取配置信息
config get requirepass

127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
mac
brew install redis // 下载
brew services start redis // 启动
redis-server /opt/homebrew/etc/redis.conf // Redis第一次启动
redis-cli ping // 验证是否启动
brew services stop redis //关闭redis服务
redis-cli // 打开图形化界面
config get requirepass //获取密码
config set requirepass 123456 // 设置密码为123456
SET name "Tom" // 写入数据

nestjs连接redis

在 Nest.js 中连接 Redis,您可以使用 @nestjs/microservices 包的 Redis 客户端模块。以下是一些步骤:

首先,安装 @nestjs/microservices 和 redis 包:
npm install --save @nestjs/microservices redis
在您的 Nest.js 应用程序模块中导入 RedisModule:

import { Module } from '@nestjs/common';
import { RedisModule } from '@nestjs/microservices';

@Module({
  imports: [
    RedisModule.forRoot({
      transport: 'redis',
      options: {
        url: 'redis://localhost:6379',
      },
    }),
  ],
})
export class AppModule {}

现在,您可以在您的服务中使用 Redis 客户端:

import { Inject, Injectable } from '@nestjs/common';
import { ClientRedis } from '@nestjs/microservices';

@Injectable()
export class RedisService {
  constructor(@Inject('REDIS') private readonly client: ClientRedis) {}

  async set(key: string, value: any): Promise<any> {
    return await this.client.set(key, JSON.stringify(value)).toPromise();
  }

  async get(key: string): Promise<any> {
    const data = await this.client.get(key).toPromise();
    return JSON.parse(data);
  }
}

在上面的示例中,我们注入了 Redis 客户端,并将其用作 set 和 get 方法中的 this.client。您可以使用任何 Redis 命令来与 Redis 进行交互。

请注意,REDIS 令牌是在 RedisModule.forRoot() 中定义的,您可以在需要时使用它来注入 Redis 客户端。

希望这可以帮助您连接 Redis。

redis集群

https://www.qycn.com/xzx/article/14460.html

redis主从切换

一般项目 三主三从

在redis数据库中,a实例已经存了数据,b实力是一个redis集群,把a实例加入到b实例中,a实例中数据还会保存吗?

在将一个 Redis 实例添加到 Redis 集群中时,该实例中现有的数据不会自动复制到集群中的其他节点。如果您想要将数据复制到集群中,您需要使用 Redis 的数据迁移工具或者编写自定义脚本来执行数据迁移操作。

当您将一个 Redis 实例加入到 Redis 集群中时,该实例被称为集群的节点。每个节点都存储了一部分数据,并且负责处理与该数据相关的所有请求。如果您将一个已有数据的 Redis 实例添加到集群中,该实例将成为集群中的一个节点,并且会负责处理与它的数据相关的请求。但是,该节点的数据将不会自动复制到集群的其他节点中。

因此,在您将一个 Redis 实例添加到集群中时,您需要考虑如何将该实例中的现有数据复制到集群的其他节点中。您可以使用 Redis 的数据迁移工具(如 Redis Migrate)或者编写自定义脚本来执行此操作。但是请注意,在进行数据迁移操作时,可能会导致 Redis 集群中的某些节点出现性能问题或暂时不可用。

列出几个使用redis队列的现实场景

以下是几个使用 Redis 队列的现实场景:

任务队列:Redis 队列可以用于处理异步任务和作业。例如,当用户提交一个大量的工作量,可以将这些工作量推入 Redis 队列中,然后让工作人员在后台异步地完成这些任务,以免造成阻塞或超时的情况。

订单处理:当您有许多订单需要处理时,可以使用 Redis 队列将订单推送到队列中,然后使用多个工作进程并行地处理这些订单。这可以帮助您提高订单处理的效率,并减少因过多请求而导致的系统阻塞。

实时消息处理:当您需要处理实时消息时,Redis 队列可以帮助您实现这一目标。例如,如果您正在构建一个聊天应用程序,可以使用 Redis 队列来处理聊天消息,以确保每条消息都能够及时地到达所有参与者。

日志记录:如果您需要记录大量的日志数据,可以使用 Redis 队列将这些日志推送到队列中,然后在后台异步地处理它们。这可以帮助您减轻系统的负担,并提高日志处理的效率。

消息队列:Redis 队列可以用于消息队列系统,处理消息发布和订阅,可以实现解耦合和异步处理。

这些场景只是 Redis 队列的一部分,Redis 队列可以应用在许多其他方面,这些场景只是展示了 Redis 队列的一些常见用法。

列出几个redis发布/订阅的显示场景

以下是 Redis 发布/订阅的几个应用场景:

  • 实时聊天系统:多个用户在同一聊天室中进行实时聊天。这时,每个用户都是一个订阅者,订阅一个共享的频道,当其他用户发送消息时,Redis 将消息发布到该频道,所有订阅者都会收到消息。

  • 数据更新通知:在分布式系统中,一个节点更新了共享的数据,需要通知其他节点更新数据。这时,更新节点发布一条消息,其他节点订阅该消息所在的频道,收到消息后进行数据更新。

  • 实时数据分析:在数据分析系统中,需要实时处理大量数据。这时,数据生成节点将数据发布到 Redis 中的频道,数据处理节点订阅该频道,并对数据进行实时分析。

  • 消息队列:Redis 发布/订阅可以用作简单的消息队列,将任务作为消息发布到频道中,工作者节点订阅该频道并处理消息。这比传统的消息队列更轻量级和简单。

  • 游戏实时对战:在游戏中,多个玩家进行实时对战。每个玩家订阅一个频道,当其他玩家发送攻击命令时,Redis 将命令发布到该频道,所有订阅者都会收到攻击命令,并相应地更新游戏状态。

以上是 Redis 发布/订阅的几个应用场景,Redis 发布/订阅是一种高效且简单的消息传递机制,可以满足许多实时消息处理的需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值