Windows安装并启动Redis服务端(zip包)

一、Redis简介

Redis(Remote Dictionary Server)是一个开源的基于内存的 Key - Value结构的数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。

性能极高:Redis是用C语言开发的一个开源的高性能键值对数据库,Redis 以其极高的性能而著称,能够支持每秒数十万次的读写操作。这使得Redis成为处理高并发请求的理想选择,尤其是在需要快速响应的场景中,如缓存、会话管理、排行榜等。

丰富的数据类型:Redis 不仅支持基本的键值存储,还提供了丰富的数据类型,包括字符串、列表、集合、哈希表、有序集合等,也被称为结构化的 NoSql 数据库(NoSql(Not Only SQL),不仅仅是SQL,泛指非关系型数据库;NoSQL数据库并不是要取代关系型数据库,而是对关系型数据的补充)。这些数据类型为开发者提供了灵活的数据操作能力,使得Redis可以适应各种不同的应用场景。

原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性至关重要,尤其是在高并发环境下处理事务时。

持久化:Redis 支持数据的持久化,可以将内存中的数据保存到磁盘中,以便在系统重启后恢复数据。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。

支持发布/订阅模式:Redis 内置了发布/订阅模式(Pub/Sub),允许客户端之间通过消息传递进行通信。这使得 Redis 可以作为消息队列和实时数据传输的平台。

单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。单线程模型也简化了并发控制的复杂性。

主从复制:Redis 支持主从复制,可以通过从节点来备份数据或分担读请求,提高数据的可用性和系统的伸缩性。

应用场景广泛:Redis 被广泛应用于各种场景,包括但不限于缓存系统、会话存储、排行榜、实时分析、地理空间数据索引等。

社区支持:Redis 拥有一个活跃的开发者社区,提供了大量的文档、教程和第三方库,这为开发者提供了强大的支持和丰富的资源。

跨平台兼容性:Redis 可以在多种操作系统上运行,包括 Linux、macOS 和 Windows,这使得它能够在不同的技术栈中灵活部署。

 

Redis 与其他 key-value 存储有什么不同?

Redis 与其他 key-value 存储系统的主要区别在于其提供了丰富的数据类型、高性能的读写能力、原子性操作、持久化机制、以及丰富的特性集。

以下是 Redis 的一些独特之处:

丰富的数据类型:Redis 不仅仅支持简单的 key-value 类型的数据,还提供了 list、set、zset(有序集合)、hash 等数据结构的存储。这些数据类型可以更好地满足特定的业务需求,使得 Redis 可以用于更广泛的应用场景。

高性能的读写能力:Redis 能读的速度是 110000次/s,写的速度是 81000次/s。这种高性能主要得益于 Redis 将数据存储在内存中,从而显著提高了数据的访问速度。

原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性非常重要。

持久化机制:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,以便在系统重启后能够再次加载使用。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。

丰富的特性集:Redis 还支持 publish/subscribe(发布/订阅)模式、通知、key 过期等高级特性。这些特性使得 Redis 可以用于消息队列、实时数据分析等复杂的应用场景。

主从复制和高可用性:Redis 支持 master-slave 模式的数据备份,提供了数据的备份和主从复制功能,增强了数据的可用性和容错性。

支持 Lua 脚本:Redis 支持使用 Lua 脚本来编写复杂的操作,这些脚本可以在服务器端执行,提供了更多的灵活性和强大的功能。

单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。

什么是 BSD 协议?

BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销 售,因此是对商业集成很友好的协议。

很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者 二次开发。

更多协议参考:各种开源协议介绍 各种开源协议介绍-CSDN博客

什么是原子性,什么是原子性操作?

举个例子:

A想要从自己的帐户中转1000块钱到B的帐户里。那个从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:

1. 从A的帐户中减去1000块钱。如果A的帐户原来有3000块钱,现在就变成2000块钱了。

2. 在B的帐户里加1000块钱。如果B的帐户如果原来有2000块钱,现在则变成3000块钱了。

如果在A的帐户已经减去了1000块钱的时候,忽然发生了意外,比如停电什么的,导致转帐事务意外终止了,而此时B的帐户里还没有增加1000块钱。那么,我们称这个操作失败了,要进行回滚。回滚就是回到事务开始之前的状态,也就是回到A的帐户还没减1000块的状态,B的帐户的原来的状态。此时A的帐户仍然有3000块,B的帐户仍然有2000块。

我们把这种要么一起成功(A帐户成功减少1000,同时B帐户成功增加1000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作。

如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。这种特性就叫原子性。

什么是 key value 存储?

JAVA 中的 map 就是 key=>value 存储的。

键 => 值(key=>value)对,键唯一,对应一个值,值的形式多样。

比如:

Map<String, int> map = new HashMap<String, int>();
map.put("ming",1);
map.put("zi",2);

这里定义了一个 Map 对象,并放置了两组数据键 ming,对应值 1,键 zi,对应值2

map.get("ming");

这样会得到 1 这个值。

如果你再设置 map.put("ming",3); 因为键 ming 已经存在,键值唯一,所以原先的值 1 会被覆盖。

二、Windows安装Redis

虽然 Redis 官方网站( Redis - The Real-time Data Platform )没有提供 Windows 版的安装包,但可以通过 GitHub 来下载 Windows 版 Redis 安装包,下载地址: Releases · tporadowski/redis · GitHub

注意:Windows 安装包是某位民间“大神”根据 Redis 源码改造的,并非 Redis 官方网站提供,在官网上也没有。

Windows安装Redis非常简单,因为是一个绿色版的 zip 文件,下载完成后放在Windows的一个目录下,解压后就可以使用了。

下面是解压后得到的文件内容

三、Windows启动Redis服务

打开一个 cmd 窗口 使用 cd 命令切换解压后的目录中运行:

redis-server.exe redis.windows.conf

如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。

切换到 redis 目录下运行:

redis-cli.exe -h 127.0.0.1 -p 6379

上述是未设置密码时使用,下述是设置密码后使用,设置密码,参考 Redis 配置  ( Redis 配置_redis完整配置-CSDN博客 )

redis-cli.exe -h localhost -p 6379 -a 123456@

-h 是指定连接的redis服务器的IP,-p是指定端口号,-a指定密码。

如果启动客户端时,没有加上-a参数,也可以连接,但是连接之后执行命令会报如下错误:

此时可以执行如下命令:

auth password

设置键值对:

set myKey abc

取出键值对:

get myKey

注:

1.redis-server是用来启动Redis服务的,redis-cli是用来启动Redis客户端的,也就是Redis命令提示符。

2.redis-cli 运行之前必须先运行 redis-server,关闭服务只需要 X 掉就好。

3.Redis客户端除了redis-cli的命令行工具外,还有可视化工具,详细内容参考: 5款实用的Redis客户端可视化工具( 5款实用的Redis客户端可视化工具-CSDN博客

4.Redis常用命令手册参考 ( Redis常用命令手册

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值