【Redis基础】快速入门

news2024/11/28 0:46:50

一、初识Redis

1. 认识NoSQL

在这里插入图片描述

2. 认识Redis

  • Redis诞生于2009年,全称是Remote Dictionary Server(远程词典服务器),是一个基于内存的键值型NoSQL数据库
  • 特征
    (1)键值(key-value)型,value支持多种不同数据结构,功能丰富
    (2)单线程执行命令,所有命令是串行执行的,每个命令具备原子性,不会存在一个命令执行过程中,其他命令插入进来的情况(注意:Redis 6.0的多线程仅仅是针对网络请求处理这块,而核心的命令的执行这部分依然是单线程)
    (3)低延迟,速度快(基于内存、IO多路复用、良好的编码:C语言编写)
    (4)支持数据持久化,定期将内存中数据持久化到磁盘,确保数据的安全性
    (5)支持主从集群、分片集群
    (6)支持多语言客户端

3. 安装Redis

  • 安装Redis依赖
    (1)Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖

    yum install -y gcc tcl
    
  • 上传Redis安装包并解压、安装
    (1)将redis-6.2.6.tar.gz包,上传到/usr/local/src目录下
    (2)解压redis-6.2.6.tar.gz,进入解压后目录,运行编译命令,如果没有报错则安装成功

    tar -zxvf redis-6.2.6.tar.gz
    
    cd redis-6.2.6
    
    make && make install
    

    (3)默认的安装路径:/usr/local/bin目录下

    在这里插入图片描述

    (4)该目录已经默认配置到环境变量中,可以在任意目录下运行这些命令

    1)redis-cli:Redis提供的命令行客户端
    2)redis-server:Redis的服务端启动脚本
    3)redis-sentinel:Redis的哨兵启动脚本
    
  • 启动Redis
    (1)默认启动

    1)安装完成后,在任意目录输入redis-server命令即可启动Redis
    2)这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C,则Redis停止【不推荐使用】
    
    redis-server
    

    (2)指定配置启动

    1)修改Redis配置文件redis.conf(路径:/usr/local/src/redis-6.2.6)
    
    2)备份redis.conf
    cp redis.conf redis.conf.bak
    
    3)修改redis.conf文件中的一些配置
    # 监听的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
    bind 0.0.0.0
    # 守护进程,修改为yes后即可后台运行
    daemonize yes
    # 密码,设置后访问Redis必须输入密码
    requirepass 123321
    
    4)Redis的其它常见配置
    # 监听的端口
    port 6379
    # 工作目录,默认是当前目录(哪里启动,哪里就是工作目录),也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
    dir .
    # 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
    databases 1
    # 设置redis能够使用的最大内存
    maxmemory 512mb
    # 日志文件,默认为空,不记录日志,可以指定日志文件名
    logfile "redis.log"
    
    5)启动Redis
    # 进入redis安装目录 
    cd /usr/local/src/redis-6.2.6
    # 启动
    redis-server redis.conf
    
    6)停止服务
    # 利用redis-cli来执行shutdown命令,即可停止Redis服务,因为之前配置了密码,因此需要通过-a来指定密码
    redis-cli -a 123321 shutdown
    

    (3)开机自启

    1)新建一个系统服务文件
    vim /etc/systemd/system/redis.service
    
    2)输入以下内容
    [Unit]
    Description=redis-server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    3)重载系统服务
    systemctl daemon-reload
    
    4)可以用下面这组命令来操作redis
    # 启动
    systemctl start redis
    # 停止
    systemctl stop redis
    # 重启
    systemctl restart redis
    # 查看状态
    systemctl status redis
    
    5)让redis开机自启
    systemctl enable redis
    

4. Redis客户端

  • 命令行客户端
    在这里插入图片描述

  • 图形化桌面客户端
    (1)安装包:https://github.com/lework/RedisDesktopManager-Windows/releases

    在这里插入图片描述

  • 编程客户端【后续实现】

二、Redis常见命令

1. Redis数据结构介绍

  • Redis是一个key-value的数据库,key一般是String类型,但是value的类型多种多样
    在这里插入图片描述
  • Redis将操作不同数据类型的命令进行分组,在官网(https://redis.io/commands)可以查看不同命令组
    在这里插入图片描述
  • 通过help也可以查看命令分组
    在这里插入图片描述

2. Redis通用命令

  • KEYS:查看符合模板的所有key,不建议在生产环境中使用
  • DEL:删除一个指定的key
  • EXISTS:判断key是否存在
  • EXPIRE:给一个KEY设置有效期,有效期到期时该key会被自动删除
  • TTL:查看一个key的剩余有效期

3. String类型

4. Hash类型

5. List类型

6. Set类型

7. SortedSet类型

三、Redis的Java客户端

1. Jedis客户端

2. SpringDataRedis客户端

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

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

相关文章

测试员如何突破自我的瓶颈?我有几点看法

前阵子我自己也对如何“突破瓶颈”思考过,我觉得“突破瓶颈”、“弥补短板”等等都大同小异,从古至今就是测试员们津津乐道的话题。我也对自己该如何“突破瓶颈”总结了几点,跟大家分享下: 1、“常立志、立长志”。“立志”就是目…

Vue脚手架使用【快速入门】

一、使用vue脚手架创建工程 在黑窗口中输入vue ui命令 再更改完路径地址后需要按回车 二、vue工程中安装elementui 第一种可以在黑窗口输入命令安装 npm install -s element-ui第二种使用图形化安装 三、 在vue工程中安装axios 第一种可以在黑窗口输入命令安装 npm inst…

ECMAScript6之一

目录 一、介绍 二、新特性 2.1 let 和 const 命令 2.2 es6的模板字符串 2.3 增强的函数 2.4 扩展的字符串、对象、数组功能 2.5 解构赋值 2.6 Symbol 2.7 Map 和 Set 2.8 迭代器和生成器 2.9 Promise对象 2.10 Proxy对象 2.11 async的用法 2.22 类class 2.23 模块…

linux内核中kmalloc与vmalloc

kmalloc 和 vmalloc 是 Linux 内核中的两种内存分配方法,它们都用于为内核分配内存,但它们在使用和管理内存方面存在一些重要差异。下面我们详细讨论这两种内存分配方法的异同。 相同点: 都是内核空间的内存分配方法。都可以用于动态分配内…

anaconda目录下的pkgs文件夹很大,可以删除吗?

pkgs这个目录占用了6GB的硬盘空间。 其实里面是conda安装第三方包的时候保存在本地的下载文件,大部分是可以删除的。 只是删除后,后续你需要创建虚拟环境的时候或者在虚拟环境下pip安装第三方库的时候,会从网络去下载,没法直接从…

Jmeter的常用设置(一)

文章目录 前言一、Jmeter设置中文 方法一(临时改为中文)方法二(永久改成中文)二、启动Jmeter的两种方式 方法一(直接启动,不打开cmd窗口)方法二(带有cmd窗口的启动)三、调…

【xxl-job】本地部署并接入xxl-job到项目中

本地部署并接入xxl-job到项目中 一、xxl-job简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 什么是分布式任务调度 通常任务调度的程序是集成在应用…

SparkCoreDAG

DAG有向无环图 倒推 故推导程序的执行计划时,先看代码有几个action算子,从action倒推 一个action会产生一个JOB(DAG)(即一个应用程序内的子任务) 一个action一个Job一个DAG 一个application里面可以有多…

Latex:画图识别符号

http://detexify.kirelabs.org/classify.html

RDMA RoCev2 CM建链和Socket建链测试

前言 RDMA在高性能计算,AI大模型训练中发挥着重要的作用。 主流支持RDMA的协议有IB、RoCev1、RoCev2、iWARP。 其中RoCev2是应用最广泛的协议,因为其RDMA over UDP/IP,不依赖昂贵的IB网络设备,同时支持路由,性能上也…

Azure Kinect 之 Note(一)

Azure Kinect Azure Kinect DK 是一款开发人员工具包,配有先进的AI 传感器,提供复杂的计算机视觉和语音模型。 Kinect 将深度传感器、空间麦克风阵列与视频摄像头和方向传感器整合成一体式的小型设备,提供多种模式、选项和软件开发工具包(S…

Web开发模式

Web开发介绍 1 什么是web开发 Web:全球广域网,也称为万维网(www World Wide Web),能够通过浏览器访问的网站。 所以Web开发说白了,就是开发网站的,例如下图所示的网站:淘宝,京东等等 那么我们…

【*2400 线段树】CF444 C

Problem - C - Codeforces 题意: 思路: 首先询问的是权值和,那么维护一个区间和sum,因此pushup部分就好了 考虑修改,区间修改,因此要打标记 一次修改对区间和的贡献不能直接计算,因此我们考…

8-1、Deployment运行应用的机制

Kubernetes 通过各种 Controller 来管理 Pod 的生命周期。为了满足不同业务场景,Kubernetes 开发了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 、 CronJob 等多种 Controller。 用户通过 kubectl 创建 Depl…

ENSP模拟器如何设置命令行和描述框的背景颜色及字体

ENSP模拟器如何设置命令行和描述框的背景颜色及字体 选择“菜单 > 工具 > 选项”, 在弹出界面中选择“字体设置”。 单击“字体”后的“选择”设置字体,单击“字体颜色”后的“选择”设置字颜色,单击“背景颜色”后的“选择”设置…

UnityVR--机械臂场景11-简单流水线应用3

目录 一. 前言 二. 设置一个定时器 三. 添加机械臂事件 四. 机械臂控制函数OnArmCtrl 五. 定义上面的3个机械臂移动方法 六. 机械臂各关节转动控制 七. 场景实现 八. 完整代码 一. 前言 上一篇使用了DoTween插件,并且改写了事件的相关参数,本篇…

jenkins 关闭关闭CSRF Protection(跨站请求伪造保护)

jenkins版本 我的jenkins版本是:2.332.4 背景 Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能。 从较旧版本的 Jenkins 升级的实例将启用 CSRF 保护和设置默认的发行者,如果之前被禁用。 解决方法 老版本Jenkins的CSRF…

QT各种控件常用样式表qss示例

1、表格控件QTableWidget和QTableView 这个控件比较复杂,里面包含了滑动条、表头(又细分为内容区/空白区)、表格、整体、左上角按钮等多种不同的元素,他们之间有复杂的叠层关系。需要通过各种“选择器”来指定样式的作用范围。 …

解决openKylin显示不能自适应VMware窗口大小的教程

目录 前言解决步骤效果图 前言 相信很多朋友们使用VMware配置成功openKylin后对遇到不能全屏显示的问题很头痛,今天我用我自己的电脑为例,给大家示范一下。 网上对于虚拟机不能自适应VMware主要有两个方案 一个是编辑虚拟机设置----显示器----指定监…

如何用ChatGPT做咨询师,附Prompt

对基本问题研究得不深不透、得不到可靠的分析框架支持的情况下,仓促采取就事论事的应对措施 ,由于未能触及事情的根本,往往非但不能获得预期的效果,相反可能引发新的矛盾。 ——吴敬琏(著名经济学家,国务院…