Redis从入门到实战(八、Redis桌面客户端)

66 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情

1、为什么Redis是单线程

官方解释:因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis 的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就 顺理成章地采用单线程的方案了!

我们所说的Redis的单线程,不是指Redis程序真的只会有一个线程。这里所说的单线程,指的是Redis处理客户端发来的数据操作请求(增删改查),只会使用一个线程去执行。但是实际上,Redis在执行其他操作的时候,可能会开启多个进程或线程,比如说持久化。Redis执行BGSAVE指令,进行快照持久化时,就会fork出一个子进程,然后子进程去创建快照,完成持久化操作。

2、Redis为什么那么快

多线程 一定比 单线程 效率高,其实不然!

redis 核心就是 如果我的数据全都在内存里,我单线程的去操作 就是效率最高的,为什么呢,因为 多线程的本质就是 CPU 模拟出来多个线程的情况,这种模拟出来的情况就有一个代价,就是上下文的切 换,对于一个内存的系统来说,它没有上下文的切换就是效率最高的。redis 用 单个CPU 绑定一块内存 的数据,然后针对这块内存的数据进行多次读写的时候,都是在一个CPU上完成的,所以它是单线程处 理这个事。在内存的情况下,这个方案就是最佳方案。

因为一次CPU上下文的切换大概在 1500ns 左右。从内存中读取 1MB 的连续数据,耗时大约为 250us, 假设1MB的数据由多个线程读取了1000次,那么就有1000次时间上下文的切换,那么就有1500ns * 1000 = 1500us ,我单线程的读完1MB数据才250us ,你光时间上下文的切换就用了1500us了,我还不 算你每次读一点数据 的时间。

3、Redis如何提高CPU利用率

现在的CPU一般都有多个核心,每个核心可以单独执行。Redis处理客户端请求使用单线程,那么自然而然,无法将CPU的所有核心都占用,也就造成了资源的浪费。而解决的方式也比较简单,我们可以在同一个服务器上开启多个Redis程序,每个Redis程序使用不同的端口,相互独立,以此提高CPU的使用率。而这多个Redis程序可以配置成主从节点,共同为一个程序服务,也可以相互独立,服务于多个程序。

4、Redis桌面客户端

下载地址:github.com/uglide/Redi…,该仓库提供的是RedisDesktopManager的源码,并未提供windows安装包。

在下面这个仓库可以找到安装包:github.com/lework/Redi…

既然是学习使用,我们就是使用最新的版本即可。

image-20221009105434448.png

4.1、安装

下载完成之后,我们解压一下,然后看到文件夹中一个exe文件,我们双击安装。

安装完成之后,打开安装的目录,找到这个resp.exe文件。

image-20221009110517526.png

双击运行即可:

image-20221009110919519.png

4.2、建立连接

点击左上角的连接到Redis服务器按钮:

image-20221009111200245.png

这里启动可以在本地装一个redis,然后启动起来,我们这里默认地址即可,填写一个名字,其余的可为空,如果你连接的是服务器上的,可能设置密码,再填写密码即可。

填写完之后,先别着急点确定,点击左下角的测试连接,先测试一下连接是否通,然后再确定

image-20221009111424739.png

测试成功之后,再点击确定,然后打开我们新添加的test,就会看到16个数据库了。

image-20221009111524922.png

Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。

以上就是学习Redis入门需要了解的知识,我是一步一步的操作的,接下来进入redis实际的应用。