Redis系列之Redis入门级(带你初步认识Redis)

news2024/11/30 14:46:42

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《LInux实战开发》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖


 前言

        今天与大家分享一个新的知识点,它就是Redis,它和我们之前学的数据库有些类似,但又有些不同。他和数据库一样是用来存储数据的。让我们一起去来探索关于它的奥秘吧。

一、Redis简介

1. 基本概述

         Redis是一个使用C语言编写的开源的key-value存储系统,它可以用作数据库、缓存和消息中间件等场景。与MySQL等使用二维表格形式存储数据的数据库不同,Redis使用key-value的形式存储数据。

        它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

安装包:

redis-5.0.0.tar.gz(linux)
Redis-x64-3.2.100.msi(window安装版)
Redis-x64-3.2.100.zip(window解压版)

2. 基本用途

Redis的用途比较广泛,基本用途如下:

  1. 缓存:这是Redis最广为人知的使用场景。通过使用Redis作为缓存,可以提高应用的性能和响应速度。
  2. 数据库:Redis可以作为数据库,存储和管理数据。由于其高性能和原子性操作,Redis在需要高并发访问的数据存储场景中表现出色。
  3. 消息队列:Redis可以作为简单的消息队列使用,实现异步任务和消息推送。这有助于解耦和优化应用程序的处理流程。
  4. 会话共享:在集群模式下,Redis可以用于保存和共享会话信息,确保用户在任何一台服务器上登录时,都能获取到对应的会话信息。
  5. 排行榜:Redis支持对集合进行操作,这使得它可以用来实现排行榜功能。
  6. 计数器:Redis的计数器功能可以帮助我们统计文章被点赞、评论的次数等。
  7. 分布式锁:Redis的setnx命令可以用于实现分布式锁。
  8. 分布式协同过滤:Redis的分布式协同过滤算法可以用于推荐系统、防止恶意请求等。

这就是Redis的一些基本的用途,但是具体的使用用途要根据使用的场景来决定。

3. 应用场景

Redis的基本应用场景
应用场景说明
缓存热点数据例如报表和明星出轨等,通过使用Redis进行缓存,可以提升热点数据的访问速度。
数据共享分布式Redis是分布式的独立服务,可以在多个应用之间共享数据,例如分布式Session。
计数器例如统计文章被点赞、评论的次数等。
会话共享在集群模式下,Redis可以用于保存和共享会话信息,确保用户在任何一台服务器上登录时,都能获取到对应的会话信息。
排行榜Redis支持对集合进行操作,这使得它可以用来实现排行榜功能。
分布式锁Redis的setnx命令可以用于实现分布式锁。
分布式协同过滤Redis的分布式协同过滤算法可以用于推荐系统、防止恶意请求等。

二、安装Redis

1.安装客户端

        点击安装包,傻瓜式一键下一步点击到底即可

 

2. Linux系统

1.1 导入安装包

        将安装包导入到我们要安装的目录下

 1.2 解压安装包

        输入指令解压安装包

指令:tar -xvf redis-5.0.0.tar.g

1.3 准备配置Redis

        进入解压好的文件夹目录下(redis-5.0.0)下输入make指令进行安装redis实际上是编译redis;然后我们检查安装环境输入指令:make install回车即可;在此我们还要安装一个gcc插件,方便后续使用,指令:yum install gcc。

编译redis

检查安装情况 

安装gcc

1.4 启动Redis

        输入指令: ./src/redis-server redis.conf 进行启动

 

1.5 配置Redis相关文件

修改redis.conf文件

        将文件中的daemonize no修改为daemonize yes

按住ctrl+c退出启动,先将文件进行备份一下输入指令:cp redis.conf redis_bak.conf 即可,输入vim redis.conf 进入文件并进行编辑,输入"/" 然后"关键字" 再enter;"n"指找下一个;查找到指定位置按i进行编辑,最后:wq进行保存并退出

验证

        编辑好之后重新启动redis,然后输入 lsof -i:6379进行查看redis端口是否在使用,然后进行连接,输入指令:./src/redis-cli回车,在输入ping回车,出现PONG代表Redis安装完成。

        在执行上述操作前先要输入 yum install -y lsof安装lsof插件。

1.6 配置端口主机访问

         先将开启的进行端口停止掉输入指令:kill -9 进程pid再次查看你端口状态看看是否关闭,没有显示说明关闭成功。在redis.conf中放开本地端口,然后去设置redis密码,最后再防火墙开发一个6379端口号提供给祖籍访问

停止进程 

配置端口及设置密码

开发端口主机访问

指令:

  1. firewall-cmd --zone=public --add-port=6379/tcp --permanent  ---->打开端口
  2. firewall-cmd --reload && firewall-cmd --list-port   --->刷新状态并查看信息 

开设之后,再去启动我们的服务。

         开启服务,重新使用我们设置的密码登陆开启

指令:#4.客户端redis-cli链接redis,重新测试
./src/redis-cli -h 端口号-p 接口-a 密码

   

 主机客户端连接

3. Windos系统

        首先将安装压缩包进行解压,然后编写一个.bat文件放到解压目录下,点击该文件运行即可安装,设置密码及端口与Linux系统一致,在redis.windows.conf文件中修改

 redis.bat

cd Redis-x64-3.2.100
redis-server redis.windows.conf

 运行后的结果

设置端口及密码

三、Redis常用命令

select +数字  ---->代表着使用的是第几个数据库

1.Redis字符串(String)

1.1 添加数据

语法:

set 变量名 值

客户端查看数据 

 1.2 根据变量获取值

语法:

get 变量名

 

1.3 查看数据类型

语法:

type变量名

 

 1.4 查看所有key或指定的key

语法:

keys *     --->所有

keys 指定的key  --定的key

 

1.5 其他的语句

# SETEX KEY_NAME TIMEOUT VALUE    // 给键值对设置过期时间

# ttl key    // 获取键值对剩余的存活时间

2.Redis哈希(Hash)

        Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

 2.1 添加值

hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中

hset user name zs age 12 sex nv  -->案例

 

2.2 获取指定的值

hget key field  ---->    #获取指定的字段值 

2.3 删除指定的字段值

 hdel user age   ------>#删除指定的字段值

 2.4 其他语法

hgetall key                             #查询指定key的所有

hexists key field                       #查询指定key中的字段是否存在

hlen key                                #获取指定key中的长度

3.  Redis列表(List)

        Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

 3.1 添加数据

 lpush key value1 value2 value3          #将一个或多个值插入到列表头部

案例:lpush en a b c d e f g

3.2 获取数据

 lindex key index                        #根据索引获取列表中的元素

案例:lindex en 1          注:#返回f,说明下标从0开始,同时先进后出

 lrange key start sop                    #查看指定范围内的元素

案例:lrange en 1 3           注:#返回fed,说明下标从0开始,同时先进后出 

 3.3 其他语法

llen key                                #获取列表的长度

4.  Redis集合(Set)

        Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

语法如下(大家自行演示) 

# sadd key value1 [value2]                #向集合添加一个或多个元素

# scard key                               #获取集合中的元素数量

# exists key                              #是否存在

 今天的分享到此结束,记得关注加三连哦

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物联网云端管理软件 IoTstar 3.5.1

IoTstar 是为各种工业物联网应用中的WISE/PMC/PMD 控制器开发的软件。IoTstar可以安装在通用PC平台上作为私有物联网云系统,也可以安装在Microsoft Azure、IBM Bluemix、Google Cloud或Amazon AWS等VM(虚拟机)平台上作为公共物联网云系统。 I…

Pymysql模块使用操作

一、pymysql模块安装 二、测试数据库连接 测试数据库连接.py from pymysql import Connectioncon None try:# 创建数据库连接con Connection(host"localhost",port3306,user"root",password"XXXXX")# 测试链接print(con.get_host_info())print…

面试10000次依然会问的【volatile】,你还不会?

volatile关键字的定义 volatile是Java语言提供的一种轻量级的同步机制,主要用于确保变量的修改对其他线程是立即可见的,以及防止指令重排序。使用volatile修饰的变量,其读写操作直接作用于主存,而不是线程的工作内存。 这意味着…

ubuntu 20.04 + cuda-11.8 + cudnn-8.6+TensorRT-8.6

1、装显卡驱动 ubuntu20.04 cuda10.0 cudnn7.6.4_我是谁??的博客-CSDN博客 查看支持的驱动版本: 查看本机显卡能够配置的驱动信息 luhost:/usr/local$ ubuntu-drivers devices/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 moda…

2023-11-03 LeetCode每日一题(填充每个节点的下一个右侧节点指针 II)

2023-11-03每日一题 一、题目编号 117. 填充每个节点的下一个右侧节点指针 II二、题目链接 点击跳转到题目位置 三、题目描述 给定一个二叉树: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针…

Windows 11 Home 中启用 Hyper-V

Hyper-V 是微软开发的基于硬件的虚拟机管理程序。它允许用户在 Windows 操作系统之上运行不同操作系统的多个实例。目前,Hyper-V 也支持 Windows、Ubuntu 和其他 Linux 发行版。 如果发现像我这样电脑上启用Hyper-V选项可以按照以下步骤进行操作。 一、新建一个txt…

接上回,如何用 LlamaIndex 搭建聊天机器人?

LlamaIndex 是领先的开源数据检索框架,能够在各种应用中发挥优势,其中一个典型的应用就是在企业内部搭建聊天机器人。 对于企业而言,随着文档数量不断增多,文档管理会变得愈发困难。因此,许多企业会基于内部知识库搭建…

企业办公为什么要选择局域网im即时通讯软件

办公沟通对于企业来说至关重要,而选择局域网IM即时通讯软件作为沟通工具,有以下几个重要原因: 安全性保障:使用局域网IM即时通讯软件,所有的通信数据都在企业内部网络中传输,不会经过公共互联网。这极大地…

C代码内存区域划分

C代码内存区域划分 1、初始化不为零的(全局变量、静态全局变量和静态局部变量)放在.data段 2、初始化为0,和未初始化的(全局变量、静态全局变量和静态局部变量)放在.bss 3、编译阶段未初始化的全局变量放在COM块&…

win10、win11解决应用商店、xbox错误代码0x80072efd、0x80131505的方法

文章目录 问题解决方法win10修改方法找到网络和共享中心找到Internet属性点击局域网设置解决后效果 win11的解决方法打开Internet选项找到局域网设置局域网设置 问题 在window上使用win10或者win11自带的系统时,应用商店、xbox报错错误代码0x80072efd、0x80131505。…

【Synopsys工具使用】VCS使用与Makefile脚本调用

文章目录 一、文件导入二、VCS仿真(使用可视化界面)三、VCS仿真(使用Maefile文件)3.1 Makefile文件编写3.2 仿真文件编写规范3.3 Makefile文件使用 一、文件导入 新建一个文件夹新建一个文件夹(图中IC_work)   创建一个目录&…

【考研数学】概率论与数理统计 —— 第八章 | 假设检验

文章目录 一、基本概念与原理1. 假设检验2. 两类错误3. 小概率原理与显著性水平 二、假设检验的基本步骤三、一个正态总体均值和方差的假设检验四、两个正态总体的假设检验写在最后 一、基本概念与原理 1. 假设检验 设总体分布已知,但含有未知参数,对总…

学PYTHON必须学算法吗?老程序员告诉你真相!

Python是一种非常流行的编程语言,广泛应用于数据科学、人工智能、Web开发、自动化、脚本编程等各种领域。对于很多Python开发工作,尤其是与应用开发、数据分析和Web开发相关的职位,算法并不是绝对必须的技能。 然而,在某些领域和职…

通过 Hilbert 变换实现单边带调制

目录 简介 双边带调制 单边带调制 理想的 Hilbert 变换 频谱移位器 SSB 调制的高效实现 总结 该例子说明如何使用离散 Hilbert 变换来实现单边带调制。Hilbert 变换可应用于调制器和解调器、语音处理、医学成像、波达方向 (DOA) 测量,以及任何简化设计的复信…

“Redis在分布式系统中的应用与优化“

文章目录 引言一、Redis的简介1. Redis的基本概念2. Redis在分布式系统中的优势 二、Windows、CentOS安装RedisCentOS安装RedisWindows安装Redis 三、Redis的常用命令总结 引言 在当今互联网时代,随着数据量的不断增长和用户访问量的激增,分布式系统的应…

将一个Series序列转化为数据框Dataframe格式Series.to_frame()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将一个Series序列 转化为Dataframe格式 Series.to_frame() [太阳]选择题 关于以下代码的说法中正确的是? import pandas as pd s pd.Series([1,2],name"myValue") print("【显…

【QT】如何理解Widget::Widget(QWidget *parent) :QWidget(parent)

‪qwidget.cpp所在路径&#xff1a;D:\Qt\Qt5.9.9\5.9.9\Src\qtbase\src\widgets\kernel\qwidget.cpp 本文重点&#xff1a;如何理解下面这段代码? 一、类的继承和派生 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>class Widget : public QWidget {…

【PID专题】控制算法PID之微分控制(D)的原理和示例代码

微分&#xff08;D&#xff09;项是PID控制器的一个组成部分&#xff0c;它对系统的控制输出做出反应&#xff0c;以减小系统的过度调节和减小响应的快速变化。微分项的作用是在控制系统中引入一个滞后效应&#xff0c;以帮助系统平稳响应。 以下是微分&#xff08;D&#xff0…

PP-OCRv4-server-det模型训练

PP-OCRv4-server-det项目地址https://aistudio.baidu.com/projectdetail/paddlex/6792800 1、数据校验 2、 模型训练 3、评估测试 4、模型部署

OpenCV实战——OpenCV.js介绍

OpenCV实战——OpenCV.js介绍 0. 前言1. OpenCV.js 简介2. 网页编写3. 调用 OpenCV.js 库4. 完整代码相关链接 0. 前言 本节介绍如何使用 JavaScript 通过 OpenCV 开发计算机视觉算法。在 OpenCV.js 之前&#xff0c;如果想要在 Web 上执行一些计算机视觉任务&#xff0c;必须…