Redis是一种基于键值对(key-value)数据库,其中value可以为string、hash、list、set、zset等多种数据结构,可以满足很多应用场景。还提供了键过期,发布订阅,事务,流水线等附加功能。
流水线: Redis的流水线功能是指,允许客户端一次将多个命令请求发送给服务器, 并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户端, 使用这个功能可以有效地减少客户端在执行多个命令时需要与服务器进行通信的次数。
其有如下几点特性:
-
速度快,数据放在内存中,官方给出的读写性能10万/S,与机器性能也有关
- 数据放内存中是速度快的主要原因
- C语言实现,与操作系统距离近
- 使用了单线程架构,预防多线程可能产生的竞争问题
-
键值对的数据结构服务器
-
丰富的功能:键过期,发布订阅,事务,流水线等
-
简单稳定:单线程
-
持久化:持久化到硬盘,但发生断电或机器故障,数据可能会丢失
- 主从复制:实现多个相同数据的redis副本
- 高可用和分布式:哨兵机制实现高可用,保证redis节点故障发现和自动转移
- 客户端语言多:java php python c c++ nodejs等
那么Redis有哪些使用场景呢?如下:
- 缓存: 合理使用缓存加快数据访问速度,降低后端数据源压力
- 排行榜: 按照热度排名,按照发布时间排行,主要用到列表和有序集合
- 计数器应用: 视频网站播放数,网站浏览数,使用redis计数
- 社交网络: 赞、踩、粉丝、下拉刷新
- 消息队列: 发布和订阅
然后再来简单看一看Redis的通讯模型,如下:
执行过程: 发送指令-> 执行命令-> 返回结果
执行命令: 单线程执行,所有命令进入队列,按顺序执行,使用I/O多路复用解决I/O问题,通过 select/poll/epoll/kqueue 这些I/O多路复用函数库,可以解决了一个线程处理多个连接的问题
单线程快原因: 纯内存访问, 非阻塞I/O(使用多路复用),单线程避免线程切换和竞争产生资源消耗。当然单线程的问题就是如果某个命令执行慢,那么就会造成其它命令的阻塞
Windows下安装Redis
简单的介绍了下Redis后,我们来看一下Redis在Windows及Linux环境下,分别是如何进行安装的,首先我们先来看一下Windows环境下的安装步骤。
首先我们要去下载一个Windows版本安装包,但是现在官网已经没有下载地址,只能在github上下载,官网只提供linux版本的下载。
github下载地址:https://github.com/microsoftarchive/redis/releases
下载完成后,然后将其解压至我们想要的安装目录下,在运行中输入cmd,然后把目录指向解压的Redis目录,如下:
然后就可以执行Redis的启动命令了,redis-server redis.windows.conf
,出现下图显示表示启动成功了。
上面虽然启动了Redis,但是只要一关闭cmd窗口,Redis就会消失。所以要把Redis设置成windows下的服务。可以使用下列命令来设置服务命令
redis-server –service-install redis.windows-service.conf –loglevel verbose
然后我们就可以通过下列常用的Redis服务命令来控制
-
开启服务: redis-server –service-start
-
停止服务: redis-server –service-stop
-
卸载服务: redis-server –service-uninstall
在启动了Redis服务后,我们还有使用Redis的客户端进行测试,如下:
- redis-cli.exe -h 127.0.0.1 -p 6379
- set foo bar
- get foo
Linux下安装Redis
同样的首先我们也是需要下载Redis的Linux的安装包,下载地址:http://redis.io/download
在选择版本时,需要注意其版本号,版本号第二位为奇数,为非稳定版本(如 2.7、2.9、3.1),第二为偶数,为稳定版本(如 2.6、2.8、3.0),当前奇数版本是下一个稳定版本的开发版本,如2.9是3.0的开发版本,所以我们在日常使用中,肯定尽量使用稳定版本。
选择好版本后下载,然后上传至虚拟机,或者也可以直接通过wget命令进行下载,如下:
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
然后将其解压,如下:
tar xzf redis-4.0.6.tar.gz
然后我们就可以使用 mv 命令,将解压后的redis移至想要安装的路径下,然后进入其中,如下
然后执行 make 命令,就可以进行安装了
make完后 redis-4.0.9 中就会出现编译后的redis服务程序redis-server
,还有用于测试的客户端程序redis-cli
,两个程序位于安装目录 src 目录下:
然后下面我们就可也以进行启动Redis服务了,命令:./redis-server
注意:上述方式启动Redis使用的是默认配置。也可以通过启动参数告诉Redis使用指定配置文件使用下面命令启动。
./redis-server …/redis.conf
redis.conf
是一个默认的配置文件,我们可以根据需要设置相应的配置文件。
通过上述启动Redis服务后,发现和Windows下同一个的一个问题,就是终端页面不能关闭,也不能操作其他的命令(当然是可以再开启另一个终端页面的),Redis就会停止,那么我们就可以添加一个 & 符号,将Redis改为后台启动,如下:
启动Redis服务进程后,就可以使用测试客户端程序redis-cli
和Redis服务交互了,和上述Windows测试时一致的, 如下:
那么如果想要关闭Redis服务,可以执行:./redis-cli shutdown
最后我们再来介绍一个Redis安装好后,在其 src 目录会有一些可执行文件(上述也提到了,并介绍了redis-server
和redis-cli
),其中比较常用的如下:
可执行文件 | 作用 |
---|---|
redis-server | 启动Redis服务 |
redis-cli | Redis命令行客户端 |
redis-benchmark | 基准测试工具 |
redis-check-aof | AOF持久化文件检测和修复工具 |
redis-check-dump | RDB持久化文件检测和修复工具 |
redis-sentinel | 启动哨兵 |
本文地址:https://blog.csdn.net/newbie0107/article/details/107190511