Redis——认识Redis

简单介绍

Redis诞生于2009年,全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库。

特征

  • 键值(Key-value)型,value支持多种不同数据结构,功能丰富
  • 单线程,每个命令具有原子性
  • 低延迟,速度快(基于内存,IO多路复用,良好的编码)
  • 支持数据的持久化
  • 支持主从集群和分片集群
  • 支持多语言客户端

安装Redis

对于Redis的安装,我们选择使用Linux作为环境进行安装,毕竟这种服务一经开发就是用作服务端,而服务端一般采用的操作系统就是Linux,所以我们选择直接安装在Linux上,省去了因为Windows的兼容问题到导致的出错。并且Redis的官方程序并没有支持Win版的格式,之前使用的Win版的Redis都是微软编译出来的。

我们使用的环境是CentOS7,所以在开始之前我们需要提前装好一个Linux的虚拟机,并保证虚拟机和宿主机之间可以互相ping通。

Redis的官网:雷迪斯 (redis.io)

然后,我们在官网找到下载界面,然后下载当前版本的最新版本:

我下载的时候,最新版本是7.2.0,然后下载好之后,他就是一个tar包,我们把这个tar包上传到Linux的虚拟机上:

先不着急解压,安装Redis的第一步是安装依赖,因为Redis是基于C语言编写的,所以在安装之前要先安装C语言的依赖:

yum install -y gcc tcl

解压Redis的tar包

tar -zxvf redis-7.2.0.tar.gz -C ../software

解压完成之后就是下面这样的

这个地方的软件安装路径可能不一样,这个就因人而异。

解压完成之后,我们需要进行一次编译,我们进入这个解压之后的目录:

make && make install

编译安装的过程会比较长,耐心等待即可。

默认的安装路径在`/usr/local/bin`目录下,我们可以来到这个目录看一下里面生成的文件:

这些文件中,比较重要的就是两个,一个是客户端一个是服务端。

redis-cli:是redis提供的命令行客户端

redis-server:是redis的服务端启动脚本

redis-sentinel:是redis的哨兵启动脚本

启动

前台启动

在刚才的编译安装的过程中,这些文件已经加入了环境变量中,也就是说我们在任何的位置都可以使用这个命令,最简单的启动命令就是直接运行这些脚本即可:

redis-server

当你看到这个redis的LOGO的时候,就表示这个Redis已经开始运行了。

这种方式叫做前台启动,这种启动方式会占用你的当前活动窗口,如果你要再启动一个客户端那你只能再次创建一个SSH连接才能再次开启一个活动窗口的方式去启动它。

指定配置文件启动

除了前台启动,还有一种方式叫做指定配置文件启动。

如果要让Redis以后台方式启动,则必须修改Redis的配置文件,就在我们之前解压的Redis安装包下,名字叫做redis.conf:

修改这个文件之前,首先对配置文件进行一个备份,防止因为错误操作而找不到原来的配置文件:

cp redis.conf redis.conf.bak

然后我们就可以去修改这个文件里面的内容了:

这个里面的内容非常的多,具体的修改的内容如下:

首先是bind的值:

# bind表示监听的地址,也就是允许访问的地址,默认的值就是127.0.0.1也就是只有本机才能访问,但是当我们在宿主机上 # 使用的时候就会造成很多的不便,这时候改成0.0.0.0就表示在任意的主机都可以访问这个Redis bind 0.0.0.0

然后是daemonize的值:

# 守护进程,默认值为no,设置为yes即可后台运行 # daemonize no daemonize yes

还有密码:

# 设置密码是为了保证安全性 requirepass 123456

以及其他的一些常见的配置:

# 监听的端口,端口号一般使用默认,但是如果端口号被其他的服务占用了就只能使用其他的端口号 port 6379 # 工作目录,默认是当前目录,也就是运行时候产生的日志,命令,持久化等都会保存在这个目录,默认是启动服务的目录 dir . # 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0-15 databases 1 # 设置redis能够使用的最大内存 maxmemory 512mb # 日志文件,默认为空,不记录日志,可以指定日志文件名,这里只写了文件名并没有写文件的路径,那么这个文件的路径默认就是和上面的dir路径是保持一致的。 logfile "redis.log"

然后就是带着配置文件启动,就是将配置文件的路径和文件名写在启动命令之后即可:

redis-server redis.conf

这次启动之后是不会有任何的结果出现在控制台上的,那么查看Redis有没有启动就要查看Linux的进程:

ps -ef | grep redis

可以看到已经存在一个Redis的进程,就说明Redis已经启动成功了:

然后如果你要停止Redis,那么就使用kill -9的杀死进程的命令即可。

开机自启

通过将Redis服务加入到系统服务中的方式实现开机自启。

首先要新建一个系统服务文件:

vim /etc/systemd/system/redis.service

文件的内容如下:

[Unit] Description=redis-server 
After=nerwork.target [Service] 
Type=forking 
ExecStart=/usr/local/bin/redis-server /home/morningstar/software/redis-7.2.0/redis.conf PrivateTmp=true 
[Install] 
WantedBy=multi-user.target

然后重新加载系统服务

systemctl daemon-reload

现在,我们就可以使用系统命令的方式查看Redis的状态,以及控制Redis的启停:

systemctl start redis systemctl status redis systemctl stop redis

注意,因为这个地方的启动和原来的进程启动有冲突,所以如果你没有关闭之前启动的Redis进程,则这里会报错,也就是这个绿色的点会变成红色,显示启动失败,但其实就是因为之前的Redis已经被启动了。

设置开机自启

systemctl enable redis

这样就可以设置开机自启了。

Redis客户端

命令行客户端

Redis安装完成之后就自带了命令行客户端:redis-cli,使用方式如下:

redis-cli [options] [commonds]

其中常见的options有:

  • -h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1
  • -p 6379:指定要连接的redis节点的端口,默认是6379
  • -a 123456:指定redis的访问密码

其中commonds就是Redis的操作命令,例如:

  • ping:与Redis服务做心跳测试,服务端正常会返回pong

不指定commond时,会进入redis-cli的交互控制台:

在命令行中使用-a参数输入密码的方式会不安全,从而导致会出现一个警告,那么安全的做法是不使用密码登陆之后,在交互界面中校验密码:

使用AUTH命令校验密码,校验通过之后会出现一个【OK】,然后我们测试与服务器的连接则显示正常响应,如果在不使用密码进入交互命令行之后,不校验密码就进行操作,则会提示没有权限。

图形化客户端

对于Redis的图形化客户端,一般有使用Gethub上的项目,比如rdm,或者直接使用IDEA的客户端:

根据个人喜好选择即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/124637.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对象模型和this指针(个人学习笔记黑马学习)

1、成员变量和成员函数 #include <iostream> using namespace std; #include <string>//成员变量和成员函数分开存储class Person {int m_A;//非静态成员变量 属于类的对象上的static int m_B;//静态成员变量 不属于类的对象上void func() {} //非静态成员函数 不…

博客程序系统其它功能扩充

一、注册功能 1、约定前后端接口 2、后端代码编写 WebServlet("/register") public class RegisterServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置…

《向量数据库指南》——提高向量数据库Milvus Cloud 2.3的运行效率

简介:向量数据库彻底改变了我们处理复杂数据结构的方式: 向量数据库彻底改变了我们处理复杂数据结构的方式,为高维矢量提供了高效的存储和检索。作为向量数据库专家和《向量数据库指南》的作者,我很高兴能与大家分享向量数据库运行效率方面的最新进展。在本文中,我们将探讨…

ARM编程模型-常用指令集

一、ARM指令集 ARM是RISC架构&#xff0c;所有的指令长度都是32位&#xff0c;并且大多数指令都在一个单周期内执行。主要特点&#xff1a;指令是条件执行的&#xff0c;内存访问使用Load/store架构。 二、Thumb 指令集 Thumb是一个16位的指令集&#xff0c;是ARM指令集的功能…

PandaGPT部署演示

PandaGPT 是一种通用的指令跟踪模型&#xff0c;可以看到和听到。实验表明&#xff0c;PandaGPT 可以执行复杂的任务&#xff0c;例如生成详细的图像描述、编写受视频启发的故事以及回答有关音频的问题。更有趣的是&#xff0c;PandaGPT 可以同时接受多模态输入并自然地组合它们…

嵌入式linux(imx6ull)下RS485接口配置

接口原理图如下&#xff1a; 由原理图可知收发需要收UART_CTS引脚控制,高电平时接收&#xff0c;低电平时发送。通过查看Documentation/devicetree/bindings/serial/fsl-imx-uart.yaml和Documentation/devicetree/bindings/serial/rs485.yaml两个说明文档&#xff0c;修改设备树…

Nginx__高级进阶篇之LNMP动态网站环境部署

动态网站和LNMP&#xff08;LinuxNginxMySQLPHP&#xff09;都是用于建立和运行 web 应用程序的技术。 动态网站是通过服务器端脚本语言&#xff08;如 PHP、Python、Ruby等&#xff09;动态生成网页内容的网站。通过这种方式&#xff0c;动态网站可以根据用户的不同请求生成不…

分类算法系列⑤:决策树

目录 1、认识决策树 2、决策树的概念 3、决策树分类原理 基本原理 数学公式 4、信息熵的作用 5、决策树的划分依据之一&#xff1a;信息增益 5.1、定义与公式 5.2、⭐手动计算案例 5.3、log值逼近 6、决策树的三种算法实现 7、API 8、⭐两个代码案例 8.1、决策树…

SpringCloud(34):Nacos服务发现

1 从单体架构到微服务 1.1单体架构 Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行,所有功能模块使用同一个数据库,同时,它还提供API或者UI访问的web模块等。 尽管也是模块化逻辑,但是最终它还是会打包并部署为单体式应用,这…

C++:类和对象(二)

本文主要介绍&#xff1a;构造函数、析构函数、拷贝构造函数、赋值运算符重载、const成员函数、取地址及const取地址操作符重载。 目录 一、类的六个默认成员函数 二、构造函数 1.概念 2.特性 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 五、赋值…

deepstream6.2部署yolov5详细教程与代码解读

文章目录 引言一.环境安装1、yolov5环境安装2、deepstream环境安装 二、源码文件说明三.wts与cfg生成1、获得wts与cfg2、修改wts 四.libnvdsinfer_custom_impl_Yolo.so库生成五.修改配置文件六.运行demo 引言 DeepStream 是使用开源 GStreamer 框架构建的优化图形架构&#xf…

温控仪的工作原理

温控仪是调控一体化智能温度控制仪表&#xff0c;它采用了全数字化集成设计&#xff0c;具有温度曲线可编程或定点恒温控制、多重PID调节、输出功率限幅曲线编程、手动/自动切换、软启动、报警开关量输出、实时数据查询、与计算机通讯等功能&#xff0c;将数显温度仪表和ZK晶闸…

Element Plus table formatter函数返回html内容

查看 Element Plus table formatter 支持返回 类型为string 和 VNode对象&#xff1b; 若依全局直接用h函数&#xff0c;无需引用 下面普通基本用法&#xff1a;在Element Plus中&#xff0c;你可以使用自定义的formatter函数来返回VNode对象&#xff0c;从而实现更灵活的自定…

nvm管理(切换)node版本,方便vue2,vue3+ts开发

使用nvm切换node版本 1. 完全删除之前的node及npm&#xff08;清理干净Node: 应用程序&#xff0c;缓存的文件&#xff0c;环境变量 &#xff09; 2. 使用管理员身份安装nvm&#xff0c;下载如下 3. 安装完nvm之后找到nvm下载路径对应的文件 4. 使用管理员身份打开cmd&#xff…

人工智能和大数据:跨境电商如何实现定制化营销?

在跨境电商竞争激烈的市场中&#xff0c;如何精准地满足消费者的需求并提供个性化的购物体验成为了商家们面临的重要挑战。幸运的是&#xff0c;人工智能和大数据技术的崛起为跨境电商带来了新的机遇&#xff0c;使得定制化营销成为可能。本文将探讨人工智能和大数据在跨境电商…

C# OpenVino Yolov8 Detect 目标检测

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using static System.Net.Mime.MediaT…

Mybatis 插入、修改、删除

前面几篇我们介绍了使用Mybatis查询数据&#xff0c;并且也了解了如何在Mybatis中使用JDK的日志系统打印日志&#xff1b;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解&#xff0c;建议您先进行了解后再阅…

《Web安全基础》04. 文件操作安全

web 1&#xff1a;文件操作安全2&#xff1a;文件上传漏洞2.1&#xff1a;简介2.2&#xff1a;防护与绕过2.3&#xff1a;WAF 绕过2.3.1&#xff1a;数据溢出2.3.2&#xff1a;符号变异2.3.3&#xff1a;数据截断2.3.4&#xff1a;重复数据 3&#xff1a;文件包含漏洞4&#xf…

Pyecharts数据可视化(一)

目录 1.Pyecharts简介 2.Pyecharts的常用方法 3.Pyecharts绘制柱状图 3.1 绘制并列柱状图 3.2 绘制水平直方图 1.Pyecharts简介 Pyecharts是一个用于创建交互式图表的Python库。它基于Echarts&#xff0c;一个强大的JavaScript图表库&#xff0c;Pyecharts允许Python开发者…

二、模型驱动测试设计

如果能够提升抽象层级&#xff0c;测试设计师会更加有效和有效率。 完全改正软件是不可能到达的&#xff0c;其原因是可以以形式化的方式来表述的而且是富有哲理的。聪明的软件工程师不再追求软件的完全正确&#xff0c;而是试着评判软件的行为来决定其是否为可接受的。**包括可…