Redis7-基础篇

跟着尚硅谷的周阳老师学的redis7,周阳老师的讲课风格我好爱。因为cloud nginx啥的还没学,所以高级版只能等学完后再回来学了。因为redis和linux的使用密切相关,有些命令啥的太久没用又忘了,所以笔记有些忘记的命令我又在笔记中记录了下来。



image-20231024171727579



redis-7.0.0.tar.gz 和redis-7.0-rc1.tar.gz 有什么区别

redis-7.0.0.tar.gz和redis-7.0-rc1.tar.gz是Redis的两个不同版本。主要区别在于版本号中的后缀。

  1. redis-7.0.0.tar.gz是Redis的正式版本,表示稳定版。这是Redis开发团队发布的经过充分测试和验证的正式版本,适合在生产环境中使用。
  2. redis-7.0-rc1.tar.gz是Redis的候选版本,表示候选版。这是Redis开发团队在正式发布之前发布的一个预览版本,用于收集用户反馈和测试。候选版可能包含新功能、改进或修复的bug,但不保证稳定性和完整性。
    如果你正在寻找一个稳定的版本来使用,建议选择redis-7.0.0.tar.gz。如果你对最新功能感兴趣或愿意测试新功能并提供反馈,你可以选择redis-7.0-rc1.tar.gz。


在linux中 vim文件时

如果有多个被匹配上了,用n查看下一个,N或shift+n查看上一个



开启redis – 自定使用哪个配置文件

image-20231024171354315



/set nu

显示vim打开文件的行号



netstat -anp | grep 6379



redis-cli -a 密码 shutdown 或者 shutdown 关闭redis服务



MQ massage queue 消息队列



常用指令

image-20231025161618564



image-20231025161633250



string字符串

image-20231025161704797




list列表

image-20231025161730774




hash哈希

image-20231025161800002



set集合

image-20231025162009115



zset有序集合

image-20231025161839867



bitmap

image-20231026203304652




TyperLogLog

image-20231027190320444



GEO

image-20231027200130987



Stream结构

image-20231028091541186





image-20231028094551114




image-20231028105703564




中间件是什么意思

在Java中,中间件(Middleware)是指位于操作系统和应用程序之间的软件层,用于协调和连接不同的软件组件、应用程序和系统。
中间件提供了一些常见的功能和服务,以简化分布式系统和应用程序的开发、管理和部署。它充当了不同组件之间的桥梁和整合器,提供了一致的接口和通信机制,以便它们可以相互通信、协同工作和共享资源。
常见的Java中间件包括:

  1. 消息中间件(Message Middleware):用于在分布式系统中进行异步消息传递的中间件,如Apache Kafka、RabbitMQ等。
  2. 事务中间件(Transaction Middleware):用于管理分布式事务的中间件,如Java Transaction API(JTA)等。
  3. 远程过程调用中间件(Remote Procedure Call Middleware):用于在分布式系统中进行远程方法调用的中间件,如Java RMI(Remote Method Invocation)等。
  4. 缓存中间件(Cache Middleware):用于管理和提供缓存服务的中间件,如Redis、Memcached等。
  5. Web容器(Web Containers):用于托管和运行Java Web应用程序的中间件,如Apache Tomcat、Jetty等。
  6. 应用服务器(Application Servers):提供了更完整的企业级应用程序支持的中间件,如Java EE(Enterprise Edition)应用服务器,如Oracle WebLogic、IBM WebSphere等。
    中间件起到了解耦、提供通信、管理和协调的作用,使得分布式系统和应用程序更加灵活、可扩展和可维护。它们在构建复杂的分布式系统和企业级应用程序中扮演着重要的角色。



什么是异步队列

异步队列(Asynchronous Queue)是一种数据结构,用于在多线程或分布式系统中实现异步消息传递和任务处理。
异步队列的基本概念是将任务或消息放入队列中,而不是立即执行或处理它们。异步队列允许生产者将任务或消息提交到队列,而消费者可以从队列中获取并处理这些任务或消息。
异步队列的主要特点是:

  1. 异步执行:生产者可以将任务或消息提交到队列,然后立即返回,而无需等待任务或消息的处理完成。消费者可以在后台异步地从队列中获取任务或消息,并进行处理。
  2. 解耦和缓冲:异步队列可以将生产者和消费者解耦,生产者和消费者可以独立进行操作,无需直接交互。队列可以作为缓冲区,当生产者速度较快或消费者速度较慢时,可以平衡两者之间的速度差异。
  3. 并发处理:异步队列可以支持多个消费者并发地从队列中获取任务或消息进行处理,从而提高系统的处理能力和吞吐量。
    异步队列常用于以下场景:
  • 异步任务处理:将需要执行的任务提交到队列中,然后由后台的工作线程或消费者线程从队列中取出任务并执行。
  • 消息队列:用于分布式系统中的消息传递,生产者将消息发送到队列中,而消费者从队列中获取消息进行处理。
  • 事件驱动编程:将事件以异步方式发布到队列中,然后由订阅者从队列中获取事件进行处理。
  • 线程池任务调度:将需要执行的任务添加到异步队列中,然后由线程池中的工作线程从队列中获取任务进行处理。
    异步队列的实现可以使用线程安全的队列数据结构,如阻塞队列(Blocking Queue)或消息队列(Message Queue),也可以使用分布式消息中间件,如Apache Kafka、RabbitMQ等。具体的实现方式取决于应用程序的需求和使用场景。



mv命令

mv命令是移动或重命名文件的通用命令:




关闭redis服务

redis-cli -a 密码shutdown




image-20231101152413462

image-20231101152839603

image-20231102193416975



redis事务

image-20231102193706015



image-20231102193808654



修改linux主机名

image-20231103165930664



修改文件权限

image-20231104093447539



为什么vim 一个文件后出现
Swap file “/myredis/.redis6379.conf.swp” already exists!
[O]pen Read-Only, (E)dit anyway, ®ecover, (Q)uit, (A)bort

当你在使用vim编辑器打开一个文件时,如果在上一次编辑过程中异常退出,可能会残留一个名为.swap的临时文件。当你再次打开同一个文件时,vim会检测到.swap文件的存在,并给出类似于你提供的选项列表。
选项列表的含义如下:

  • [O]pen Read-Only:以只读模式打开文件,这意味着你不能对文件进行编辑。
  • (E)dit anyway:无论.swap文件是否存在,都继续编辑文件。
  • ®ecover:尝试从.swap文件中恢复原始文件内容。
  • (Q)uit:退出vim而不进行任何操作。
  • (A)bort:放弃当前操作并退出vim。
    根据你的需求选择适当的选项即可。如果你不确定应该选择哪个选项,可以选择Q退出vim,然后删除.swap文件,然后再次打开文件进行编辑。


什么是sync命令

sync命令是一个用于同步缓存数据到磁盘的Linux命令。它被用来确保文件系统中的数据被正确地写入到磁盘中,以防止数据丢失或损坏。
当你在Linux系统上执行写操作时,数据通常会被缓存在内存中,而不是立即写入磁盘。这是为了提高系统性能,因为磁盘写入是相对较慢的操作。然而,如果系统崩溃或断电,尚未写入磁盘的数据可能会丢失。
为了解决这个问题,可以使用sync命令将缓存中的数据立即写入磁盘。当你运行sync命令时,它会强制将所有挂载的文件系统中的数据写入磁盘,以确保数据的持久性。
sync命令在系统维护、备份和安全关机时非常有用,它可以确保所有数据都已保存并同步到磁盘中。但需要注意的是,sync命令可能需要一些时间来完成,因为它涉及到磁盘写入操作。



什么是高可用

高可用性(High Availability)是指系统或应用程序能够在长时间内持续运行且正常提供服务的能力。在高可用系统中,故障的发生对用户来说是无感知的,系统能够快速恢复并保持正常运行状态。
高可用性的实现通常需要使用冗余的硬件、软件和网络设备,以及实施故障检测和自动恢复机制。这样一来,当一个组件发生故障时,其他冗余组件可以接管其功能,确保服务的连续性。
高可用性的设计与实施可以通过以下几个方面来实现:

  1. 冗余:通过使用冗余的硬件、软件和网络设备,确保系统中关键组件的备份和互备。当一个组件发生故障时,备用组件可以接管服务。
  2. 负载均衡:通过将负载分布到多个服务器或节点上,确保系统在面对高负载时仍能正常运行。负载均衡可以提高系统的可扩展性和容错性。
  3. 自动故障检测与恢复:实施监控和检测机制,及时发现故障并采取相应的恢复措施。这可以包括自动重启服务、切换到备用设备或节点,或者通知运维人员进行手动干预。
  4. 容错设计:使用容错技术和算法,确保系统能够在发生故障时继续提供服务。例如,使用冗余数据存储、错误纠正码(ECC)等技术来保护数据的完整性和可靠性。
    高可用性对于许多关键业务和服务来说非常重要,特别是金融、电子商务、医疗等领域。通过实施高可用性设计和机制,可以最大程度地减少系统停机时间,提高用户满意度和业务连续性。


redis vim 打开的文件如何定位

  1. 移动光标到最后一行: 输入 :$G,然后按下 Enter 键。这将把光标移动到文件的最后一行。
  2. 移动光标到第一行: 输入 gg,然后按下 Enter 键。这将把光标移动到文件的第一行。


启动哨兵服务

image-20231105101735621



**raft算法 ** – “先到先得”

Raft算法是一种一致性复制算法,用于在分布式系统·中实现可靠的数据复制。它通过选举一个领导者来管理数据复制过程,并确保系统中的所有节点在任何时间点都具有一致的数据副本。
Raft算法的核心概念包括:

  1. 领导者选举:系统中的节点通过相互通信来选举一个领导者。在初始状态或者领导者失效时,节点可以成为候选者并发起选举。候选者需要获得多数节点的选票才能成为领导者。
  2. 日志复制:领导者负责接收客户端请求,并将其转化为日志条目。领导者将日志条目复制到其他节点的日志中,然后等待多数节点确认。一旦多数节点确认,该日志条目就被视为已提交,领导者可以通知其他节点应用该日志条目。
  3. 安全性:Raft算法通过强制要求日志条目必须在多数节点上进行确认来确保安全性。这意味着在一个任期内,只有在多数节点确认的日志条目才能被提交和应用。
  4. 角色转换:Raft算法中的节点有三种角色:领导者、跟随者和候选者。领导者负责处理客户端请求和日志复制,跟随者按照领导者的指示进行操作,候选者则参与领导者选举。
    Raft算法相对于其他一致性复制算法(如Paxos算法)更易于理解和实现。它提供了更清晰的领导者选举过程,并使用了分阶段的角色转换机制来确保系统的可用性和一致性。因此,Raft算法在分布式系统中得到了广泛的应用。


SDOWN主观下线 subjectively down

**ODOWN客观下线 ** objectively down



集群

image-20231106195136601



什么是带宽

带宽是计量数据传输速度的衡量单位,在计算机和网络领域中指的是单位时间内可以传输的数据量。带宽通常用比特率(bit/s)来表示,表示每秒传输的比特数。带宽的大小决定了数据传输的速度,更高的带宽意味着可以更快地传输数据。
带宽通常用于描述网络连接的速度,比如互联网服务提供商(ISP)提供的宽带连接。较高的带宽可以支持更快的下载和上传速度,同时可以更好地处理多媒体内容、视频流、在线游戏等高带宽需求的应用。
带宽也可以用于描述计算机内部组件的性能,比如内存总线带宽、图形处理器的带宽等。在这种情况下,带宽通常指的是数据在计算机内部组件之间传输的速度。


**让redis客户端支持中文**

[外链图片转存中...(img-5Hes5h92-1699756058179)]






此文章用于笔者记录学习,也希望对你有帮助

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值