redis学习-5-Redis介绍与安装

2.Redis介绍

  • Redis 是由意大利人 Salvatore Sanfilippo 使用 C语言编写,它遵守 BSD 开源协议,实现了免费开源,拥有超高的性能、完美的文档和简洁易懂的源码,并且对多种编程语言提供了良好的 API 支持,比如 Java,C/C++,C#,PHP,JavaScript,Perl,Python,Ruby 等,之后会说明 Python、Java、PHP 这三种编程语言如何使用 Redis。
  • Redis(Remote Dictionary Server)译为“远程字典服务”,它是一款高性能基于内存实现的键值型、日志型非关系(NoSQL)数据库,支持网络分布式,通常也被称为数据结构服务器,这是因为它可以存储多种数据类型,比如 string(字符串),hash(哈希散列),list(列表),set(集合)和 sorted set(有序集合)等。
  • Redis官网(https://redis.io/)提供了完善的社区环境、文档说明,以及更新支持。现在最新稳定版是7.0.5。自 2010 年 3 月 15 日起,Redis 的开发工作由 VMware(威睿)公司主持。关于 Redis 数据库下载和安装,目前官方网站,只提供了 Linux 版本的下载安装包。Windows 系统可以下载安装非官方的 Redis 版本,不过其使用性能远不如 Linux 系统。

常见的内存型数据库,除 Redis 之外,还有 Oracle Berkeley DB(甲骨文旗下的一款产品)、SQlite(轻量级内存数据库)、Memcache(键值型分布式缓存数据库)、Altibase(基于内存的高性能数据库)。

buffers(缓冲)和 cached(缓存)的区别:

cached 是给读取数据时加速的,buffers 是给写入数据加速的。cached 是指把读取出来的数据保存在内存中,当再次读取时,不用读取硬盘而直接从内存中读取,加速了数据的读取过程;buffers 是指在写入数据时,先把分散的写入操作保存到内存中,当达到一定程度后再集中写入硬盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程。

  • 与其他内存型数据库相比,Redis 具有以下特点:

    • Redis支持数据的持久化: 不仅可以将数据完全保存在内存中,还可以通过磁盘实现数据的持久存储,重启的时候能够再次加载进行使用
    • Redis 支持丰富的数据类型,包括 string、list、set、zset、hash 等多种数据类型,因此它也被称为“数据结构服务器”;
    • Redis 支持主从同步支持数据的备份,即 master-slave 主从复制模式。数据可以从主服务器向任意数量的从服务器上同步,有效地保证数据的安全性;
    • Redis 支持多种编程语言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等语言。
  • 与 SQL 型数据库截然不同,Redis 没有提供新建数据库的操作,因为它自带了 16 (0—15)个数据库(默认使用 0 库)。在同一个库中,key 是唯一存在的、不允许重复的,它就像一把“密钥”,只能打开一把“锁”。键值存储的本质就是使用 key 来标识 value,当想要检索 value 时,必须使用与 value 相对应的 key 进行查找。

  • Redis 数据库没有“表”的概念,它通过不同的数据类型来实现存储数据的需求,不同的数据类型能够适应不同的应用场景,从而满足开发者的需求。

  • Redis体系架构主要分为两个部分:

    • Redis服务端
    • Redis客户端
  • 客户端和服务端可以位于同一台计算机上,也可以位于不同的计算机上。服务端是整个架构的“大脑”,能够把数据存储到内存中,并且起到管理数据的作用。

  • Redis 的优势:

    • 性能极高:Redis 基于内存实现数据存储,它的读取速度是 110000次/s,写速度是 81000次/s;
    • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
    • 取最新N个数据的操做,如:能够将最新的10条评论的ID放在Redis的List集合里面
    • 多用途工具: Redis 有很多的用途,比如可以用作数据库、高速缓存、消息队列发布订阅系统、搭建 Redis 集群、地图信息分析、计时器、计数器、对象缓存存储(会过期)等;模拟相似于HttpSession这种须要设定过时时间的功能
  • 命令提示功能:Redis 客户端拥有强大的命令提示功能,使用起来非常的方便,降低了学习门槛;

    • 可移植性:Redis 使用用标准 C语言编写的,能够在大多数操作系统上运行,比如 Linux,Mac,Solaris 等。
  • Redis应用场合:Redis 用来缓存一些经常被访问的热点数据、或者需要耗费大量资源的内容,通过把这些内容放到 Redis 中,可以让应用程序快速地读取它们。例如,网站的首页需要经常被访问,并且在创建首页的过程中会消耗的较多的资源,此时就可以使用 Redis 将整个首页缓存起来,从而降低网站的压力,减少页面访问的延迟时间。

  • 数据库的存储方式大体可分为两大类,基于磁盘存储和基于内存存储。磁盘存储的数据库,因为磁头机械运动以及系统调用等因素导致读写效率较低。Redis 基于内存来实现数据存取,相对于磁盘来说,其读写速度要高出好几个数量级。下表将 Redis 数据库与其他常用数据库做了简单对比:

名称类型数据存储选项附加功能
Redis基于内存存储的键值非关系型数据库字符串、列表、散列、有序集合、无序集合发布与订阅、主从复制、持久化存储等
Memcached基于内存存储的键值缓存型数据库键值之间的映射为提升性能构建了多线程服务器
MySQL基于磁盘的关系型数据库每个数据库可以包含多个表,每个表可以包含多条记录; 支持第三方扩展。支持 ACID 性质、主从复制和主主复制
MongoDB基于磁盘存储的非关系文档型数据库每个数据库可以包含多个集合,每个集合可以插入多个文档支持聚合操作、主从复制、分片和空间索引
  • Redis 基于内存来实现数据的存储,因此其速度非常快。但是计算机的内存是非常珍贵的资源,所以 Redis 不适合存储较大的文件或者二进制数据,否则会出现错误,Redis 适合存储较小的文本信息。理论上 Redis 的每个 key、value 的大小不超过 512 MB。

  • 学习 Redis 相关资源推荐:

    • Redis 官网:https://redis.io/
    • Redis 中文网:http://www.redis.cn/
    • Redis 命令在线测试:http://try.redis.io/
    • Redis 命令参考:http://c.biancheng.net/redis_command/(英文)http://www.redis.cn/commands.html(中文)
2.1 win下载Redis
  • 虽然 Redis 官方网站没有提供 Windows 版的安装包,但可以通过 GitHub 来下载 Windows 版 Redis 安装包(停更较久、兼容问题),下载地址:点击前往。Windows 安装包是根据 Redis 源码改造的,并非 Redis 官方网站提供。在 Windows 系统下安装 Redis 要比 Linux 系统安装稍微复杂一些。

  • 从上诉链接下载Redis 的免安装包zip,也可以下载安装程序msi。Redis 支持 32 位和 64 位的 Window 系统。
    在这里插入图片描述

  • 解压zip文件夹,打开解压包文件目录:在这里插入图片描述

2.2 创建Redis临时服务
  • 启动服务端程序:双击 Redis 服务端启动程序 redis-server.exe,会看到以下界面:
    在这里插入图片描述

显示一些 Redis 的相关信息,比如 Redis 的版本号以及默认端口号(6379)。注意,为了实现后续操作,保持服务端开启状态,否则客户端无法正常工作。

6379:来源于以为明星的名字,具有粉丝效应

  • 启动客户端程序:双击客户端启动程序 redis-cli.exe,得到如下界面:
    在这里插入图片描述
    显示该界面,说明 Redis 本地客户端与服务端连接成功。
2.3 命令创建Redis服务
  • 通过命令启动 Redis 服务端,并将 Redis 服务添加到 Windows 资源管理器,实现开机后自动启动。

  • 注册Redis服务:通过 CMD/git bash 命令行工具进入 Redis 安装目录,将 Redis 服务注册到 Windows 服务中,执行以下命令:

redis-server.exe --service-install redis.windows.conf --loglevel verbose

执行完后,得到以下输出,说明注册成功。

  • 启动Redis服务:执行以在这里插入图片描述
    下命令启动 Redis 服务,命令如下:
redis-server --service-start

在这里插入图片描述
此时 Redis 已经被添加到 Windows 服务中,因此不会再显示 Redis 服务端的相应的信息,如下图所示:
在这里插入图片描述

  • 将 Redis 加入到环境变量中,根据自己的安装路径添加环境变量。如下所示:
    在这里插入图片描述
  • 启动Redis客户端:在 CMD/git bash 命令行输出 redis-cli 命令启动客户端,如下所示:

在这里插入图片描述

  • 同样:输出PING命令来测试客户端和服务端是否成功连接。若返回PONG则证明成功连接。

  • win平台安装Redis安装过程中涉及到的命令进行总结,主要包括以下命令:

安装服务:redis-server --service-install
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
服务端启动时重命名:redis-server --service-start --service-name Redis1
2.4.linux下载安装Redis
  • 相比于 Windows 系统而言,Redis 更适合于在 Linux 系统上使用,这是由 Redis 的底层机制决定的。

  • Redis 版本号采用国际标准惯例,即“主版本号.副版本号.补丁级别”。副版本号是偶数表示一个标准发行版本,比如3.0,4.2,5.0,副版本号为奇数表示非标准发行版,例如 2.9.x 版本是 Redis 3.0 标准版本的非标准发行版本。版本号为偶数的相对比较稳定,而奇数一般是偶数版的测试版本。

  • Ubuntu 终端安装 Redis步骤:执行相应的命令:

#列出所有可更新的软件清单命令:
$sudo apt-get update	
#安装指定的软件
$sudo apt-get install redis-server
  • 启动Redis服务端:在终端输入以下命令:
$redis-server
  • 启动Redis客户端:在终端输入以下命令
#若设置了密码,使用如下格式启动
$redis-cli -h [ip] -p [port] -a [password] 
#简单格式
$redis-cli
#输入后,返回提示如下:
redis 127.0.0.1:6379>

注意:127.0.0.1 是本地计算机的 IP 地址,6379 是运行 Redis 服务器的默认端口号。

  • 验证是否成功安装:在终端输出PING命令,返回如下输出:
redis 127.0.0.1:6379> ping
PONG

上述输出说明 Redis 已成功安装在计算机上。

2.5 Linux源码包安装
  • centos8在 Redis 官网下载源码包进行安装,下载地址:https://redis.io/download。下载完成后执行以下命令:官网下载地址:redis或者是redis7.0.5
#进入源码包目录
[root@VM-0-3-centos ~]# cd /usr/lcoal/src
#下载redis-7.0.5.tar.gz版本
[root@VM-0-3-centos src]# wget http://download.redis.io/releases/redis-7.0.5.tar.gz
#解压安装包
[root@VM-0-3-centos src]# tar -zxvf redis-7.0.5.tar.gz
#进入解压后的文件目录
[root@VM-0-3-centos src]# cd redis-7.0.5
#这两个文件后续会用到
#redis.conf   此文件是 Redis 启动必需的一个配置文件。
#utils/redis_init_script    此文件是 Redis 的启动、中止脚本。
#编译
[root@VM-0-3-centos redis-7.0.5]# make
#若因缺少环境而编译失败,在安装c、c++后执行以下命令清除失败后的残留文件,之后在重新编译
make distclean
#安装到/usr/local/redis目录,不指定地址则安装到/usr/local/bin
[root@VM-0-3-centos redis-7.0.5]# make PREFIX=/usr/local/redis install 
#配置redis环境变量,在文件 /etc/profile 的PATH追加以下redis安装目录下的bin目录位置:
[root@VM-0-3-centos ~]# vim /etc/profile
#$PATH不能丢,是linux自己的环境变量指向了/root/bin,丢了后命令无法生效
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/redis/bin
#设置环境变量生效
[root@VM-0-3-centos bin]# source /etc/profile
#查看环境变量
[root@VM-0-3-centos bin]# echo $PATH
/usr/share/Modules/bin:...:/usr/local/redis/bin
#验证环境变量
[root@VM-0-3-centos redis-7.0.5]# which redis-cli
/usr/local/redis/bin/redis-cli
  • make编译前,系统需要有C语言环境,需安装C/C++
yum install gcc
yum install gcc-c++
  • 安装时关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。
  • 测试redis-server能否启动
#在redis安装目录创建配置文件目录
[root@VM-0-3-centos redis-7.0.5]# mkdir /usr/local/redis/conf
#将redis.conf文件从解压包中复制到安装目录
[root@VM-0-3-centos redis-7.0.5]# cp /usr/local/src/redis-7.0.5/redis.conf /usr/local/redis/conf/
#进入redis安装文件配置目录
[root@VM-0-3-centos redis-7.0.5]# cd /usr/local/redis/conf
#启动redis服务端,通过指定的配置文件启动服务
[root@VM-0-3-centos conf]# redis-server redis.conf

在这里插入图片描述

  • 出现该图说明redis安装成功,之后便是要在服务器防火墙上开放6379端口
#查看服务器开启了那些端口
[root@VM-0-3-centos ~]# firewall-cmd --list-ports
3306/tcp 80/tcp 8080/tcp
#在防火墙开放6379
[root@VM-0-3-centos ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
success
#添加端口后刷新防火墙
[root@VM-0-3-centos ~]# firewall-cmd --reload
success
#查询6379端口是否开放
[root@VM-0-3-centos ~]# firewall-cmd --query-port=6379/tcp
yes
  • 如果是腾讯云或者阿里云,需要开放6379的端口
    在这里插入图片描述

  • 修改配置实现redis后台运行、远程连接访问,在redis的安装目录conf找到redis.conf配置文件进行修改

#进入redis的安装目录conf找到redis.conf配置文件
[root@VM-0-3-centos ~]# cd /usr/local/redis/conf
[root@VM-0-3-centos conf]# ll
total 112
-rw-r--r-- 1 root root     88 Nov 13 10:31 dump.rdb
-rw-r--r-- 1 root root 106545 Nov 13 10:17 redis.conf
#编辑redis.conf配置文件
[root@VM-0-3-centos conf]# vim redis.conf
#注释掉bind绑定的ip
#bind 127.0.0.1 -::1
#修改保护模式,不修改保护模式也是只能内网访问的 protected-mode yes 改成 protected-mode no
#daemonize no 改为yes 后台一直运行
daemonize no
//设置密码,建议设置密码,否则可能会发生一些预料不到的事情,因为6379端口有漏洞
#requirepass "你的密码"
#设置密码 为了安全一定要设,而且这里如果不绑定ip也不设密码的话,redis是默认保护模式,只能本虚拟机访问,不允许其他ip访问
  • 之后在启动redis就可以远程连接redis了,在redis安装目录执行./redis-server …/redis.conf即可启动redis
[root@VM-0-3-centos conf]# pwd
/usr/local/redis/conf
#在redis安装目录执行,或直接在conf目录执行,只要加载到redis.conf配置文件即可
[root@VM-0-3-centos conf]# cd ..
#配置了redis环境变量可以直接执行redis-server命令
[root@VM-0-3-centos redis]# redis-server conf/redis.conf
#查看redis-server服务进程信息
[root@VM-0-3-centos redis]# ps aux | grep redis
root     1151504  0.0  0.4  62636  7192 ?        Ssl  17:30   0:00 redis-server *:6379
root     1151865  0.0  0.0  12140  1048 pts/0    S+   17:33   0:00 grep --color=auto redis

  • 启动客户端并测试
    • redis-cli --启动客户端(默认配置可以使用这个命令
    • 没有设置为全局变量要加./ 即./redis-cli
    • redis-cli -h 服务端地址 -p 端口号 – 启动客户端(指定地址和端口号) -a [password]
    • ping --测试客户端,输出PONG表示成功
    • exit /ctrl+c --退出客户端
[root@VM-0-3-centos redis]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@VM-0-3-centos redis]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set id 123456
OK
127.0.0.1:6379> get id
"123456"

#redis-cli -h 127.0.0.1 -p 6379 -a 密码

注意:127.0.0.1 是本地计算机的 IP 地址,6379 是运行 Redis 服务器的默认端口号。

  • 关闭Redis服务端
    • 方式1:在redis客户端外关闭服务端
redis-cli shutdown
    • 方式2:在redis客户端内关闭服务端
shutdown
#方式2
[root@VM-0-3-centos redis]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> shutdown
not connected> 
#查看redis-server服务进程信息
[root@VM-0-3-centos redis]# ps aux | grep redis
root     1153119  0.0  0.0  12140  1160 pts/0    S+   17:41   0:00 grep --color=auto redis
#启动redis
[root@VM-0-3-centos redis]# redis-server conf/redis.conf
[root@VM-0-3-centos redis]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@VM-0-3-centos redis]# redis-cli shutdown
[root@VM-0-3-centos redis]# ps aux | grep redis
root     1153464  0.0  0.0  12140  1060 pts/0    S+   17:44   0:00 grep --color=auto redis
  • 设置 Redis 开机自启动
    • 将上面提到的文件 utils/redis_init_script 复制到 Linux 的启动目录 init.d 中,并重命名为 redis。然后对其添加执行权限。
#redis-7.0.5/utils/redis_init_script文件 复制到 Linux 的启动目录 init.d 中
[root@VM-0-3-centos redis]# cp /usr/local/src/redis-7.0.5/utils/redis_init_script /etc/rc.d/init.d/redis
#添加执行权限。
[root@VM-0-3-centos redis]# chmod +x /etc/rc.d/init.d/redis

    • 修改 文件 /etc/rc.d/init.d/redis
#EXEC:将 EXEC 行的路径改为 /usr/local/redis/bin/redis-server。
#CLIEXEC:将 CLIEXEC 行的路径改为 /usr/local/redis/bin/redis-cli。
#CONF:将 CONF 行的路径改为 “/usr/local/redis/conf/redis.conf”。
[root@VM-0-3-centos redis]# sudo vim /etc/rc.d/init.d/redis
...
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/conf/redis.conf"
#保存后,设置 Redis 开机自启动
[root@VM-0-3-centos redis]# chkconfig redis on
  • 重启系统,重启后查看redis进程信息
Last login: Tue Nov 15 17:41:12 2022 from 110.19.110.205
[root@VM-0-3-centos ~]# ps aux |grep redis
root         829  0.0  0.5  62632  9936 ?        Ssl  18:01   0:00 /usr/local/redis/bin/redis-server *:6379
root        2229  0.0  0.0  12140  1176 pts/0    S+   18:02   0:00 grep --color=auto redis

说明设置 Redis 开机自启动成功

下一篇:redis学习-6-Redis工具介绍与使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值