关系型数据库Redis安装与写入数据

news2025/1/12 6:11:12

文章目录

    • 安装和初步
    • 选择数据库
    • 创建键值对
    • 数据类型

安装和初步

安装

Redis是开源的跨平台非关系型数据库,特点是占用资源低、查询速度快。

首先,在Github上下载最新发布的Redis-xxxx.zip压缩文件,下载之后解压,并将解压后的路径添加到环境变量,然后打开命令行,输入

redis-server

然后就会出现Redis的图标,并提示是否允许连接网络,然后Redis服务就开启了。

在这里插入图片描述
然后新开一个命令行,输入redis-cli即可进入redis的命令行,由于redis基于TCP/IP协议,所以进入命令行后,前面显示的是IP地址和端口,默认127.0.0.1和6379。

redis-cli
127.0.0.1:6379>

输入ping可以检测redis服务(即redis-server)是否开启,如果开启会得到一个pong

127.0.0.1:6379> ping
PONG

输入exit可退出redis命令行。

选择数据库

Redis默认有16个数据库,分别由序号0到15来表示,默认操作的是0号数据库,通过select可以更改

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 0
OK

需要注意,在redis中

  • 不支持自定义数据库名
  • 不支持为每个数据库设置密码
  • 数据库之间并非完全隔离的,有一些命令会对所有数据库有效,例如flushall会清空所有数据库的数据;如果只想清除档期那数据库,那么可用flushdb

创建键值对

Redis作为关系型数据库,其数据内容是以键值对的形式存储的,键和值之间的关系就如编程语言的变量名和变量值一样,通过set可以进行绑定,示例如下

127.0.0.1:6379> set micro "cold"
OK
127.0.0.1:6379> get micro
"cold"

上面的案例中,将字符串cold绑定给了micro,换言之"cold"是micro的值,而micro是"cold"的键。

exists命令可以查询键是否存在,如果存在则返回1,否则返回0;通过keys *可列举出所有符合要求的键,例如下面就通过keys命令,查找所有m开头的键,并找到了micro。

127.0.0.1:6379> exists micro
(integer) 1
127.0.0.1:6379> keys m*
1) "micro"

del可以删除键,示例如下,删除micro之后,exists函数返回0,而且数据库中就一个键也没有了。

127.0.0.1:6379> del micro
(integer) 1
127.0.0.1:6379> exists micro
(integer) 0
127.0.0.1:6379> keys *
(empty list or set)

数据类型

除了字符串之外,redis还支持哈希、列表、集合以及有序集合等数据结构。

其中,哈希即散列表,是一个键值对集合,可通过hmset进行设置,通过hget可以查找某个哈希表中的键对应的值。下面创建一个哈希表hashLst,其内容用json的形式可表示为{"37":"21", "47":"28", "55":"25}"

127.0.0.1:6379> hmset hashLst "37" "21" "47" "28" "55" "25"
OK
127.0.0.1:6379> hget hashLst "37"
"21"

列表就是按照顺序存储的表,用lpush创建,但需注意,其添加元素的顺序是从头添加,所以最后得到的顺序是相反的。

127.0.0.1:6379> lpush Lst "0" "1" "2" "3"
(integer) 4
127.0.0.1:6379> lrange Lst 0 4
1) "3"
2) "2"
3) "1"
4) "0"

集合是一个不允许存在相同元素的数据结构,可通过sadd向其中添加元素,下面的实例中,添加了abcc四个元素,但由于两个c重复了,所以最终setTest只有3个元素。

127.0.0.1:6379> sadd setTest "a" "b" "c" "c"
(integer) 3

有序集合通过zadd来添加元素,过程与集合雷同,就不展示了。

这五种数据类型的创建方法如下表所示。

数据类型字符串哈希列表集合有序集合
创建命令sethmsetlpushsaddzadd

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

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

相关文章

1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0...‘ for column编码错误

1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0…’ for column ‘campus_name’ at row 1 > 查询时间: 0s 原因是数据库创建的时候使用的默认编码latin1,导致表和字段的编码格式都是这种编码,显然这种编码不支持中文。 自己修改了数据库…

论文阅读:PVT v2: Improved Baselines with Pyramid Vision Transformer

来源:PVTv1 和PVTv2 链接:https://arxiv.org/pdf/2102.12122.pdf 链接:https://arxiv.org/pdf/2106.13797.pdf PVTv2是在PVTv1基础上,所以先介绍PVTv1 Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction…

ROS话题(Topic)通信:通信模型、Hello World与拓展

文章目录 一、话题通讯模型二、Topic Hello World2.1 创建并初始化功能包2.2 确定Topic名称及消息格式2.3 实现发布者与订阅者(C版)2.4 实现发布者与订阅者(Python版)2.5 关于Topic Hello World的注意 拓展1:devel下其…

Java中Enum枚举类型在项目中应用

1、什么是枚举类型? 1、枚举的本质就是穷举法,将可能会出现的情况,都列举出来,然后在列举的情况中调用。 2、枚举与class类似,也可以定义属性,构造方法,有getter和setter方法。 3、枚举类型对…

<MySQL> MySQL表数据的 CRUD 基础操作 —— 增(Create)、查(Retrieve)、改(Update)、删(Delete)

目录 一、CRUD 二、增加(Create) 2.1 新增插入数据 insert 2.2 操作演示 2.3 多行插入更高效 2.4 插入时间类型的数据 2.5 使用“库函数” 三、查询(Retrieve) 四、修改(Update) 4.1 修改数据 …

FTP、NFS、SAMBA系统服务一

一、rsync托管xinetd 1、为什么要进行服务托管 独立服务:独立启动脚本 ssh ftp nfs dns ... 依赖服务: 没有独立的启动脚本 rsync telnet 依赖xinetd服务(独立服务) 2、如何将rsync托管给xinetd服务去管理? 第一步&#xff1…

NSSCTF-Crypto入门题 练习记录贴 ‘‘一‘‘

文章目录 前言001[鹤城杯 2021]easy_crypto002[强网拟态 2021]拟态签到题003[SWPUCTF 2021 新生赛]crypto8004[SWPUCTF 2021 新生赛]crypto7005[SWPUCTF 2021 新生赛]crypto6006[SWPUCTF 2021 新生赛]ez_caesar007[SWPUCTF 2021 新生赛]crypto10008[鹤城杯 2021]A_CRYPTO009[SW…

SAM + YOLO 智能抠图

在计算机视觉领域,对象检测和实例分割是使机器能够理解视觉数据并与之交互的关键任务。 准确识别和隔离图像中的物体的能力具有许多实际应用,从自动驾驶车辆到医学成像。 在这篇博文中,我们将探索如何在 Roboflow 和 Ultralytics YOLOv8 的帮…

Linux C 时间编程

时间编程 Linux中时间相关命令时间编程time  获取当前的时间gmtime  获取当前日期时间localtime  获取本地时间日期asctime  规格时间结构体为字符串 Linux中时间相关命令 1)date:打印当前的系统时间。 2)date -s 20231111&#xff…

C#,数值计算——函数计算,Eulsum的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Eulsum { private double[] wksp { get; set; } private int n { get; set; } private int ncv { get; set; } public bool cnvgd { get; set; } pri…

openEuler编译安装nmon性能监控工具及可视化分析工具

ln 介绍 nmon(short for Nigel’s Monitor)是一个性能分析工具,由蓝色巨人IBM开发,最早用于自家操作系统UNIX,AIX (Advanced Interactive eXecutive)。现在也能用在Linux上。它可以显示系统的…

跨域:利用JSONP、WebSocket实现跨域访问

跨域基础知识点:跨域知识点 iframe实现跨域的四种方式:http://t.csdnimg.cn/emgFr 注:本篇中使用到的虚拟主机也是上面iframe中配置的 目录 JSONP跨域 JSONP介绍 跨域实验: WebSocket跨域 websocket介绍 跨域实验 JSONP跨域…

JavaWeb Day09 Mybatis-基础操作02-XML映射文件动态SQL

目录 Mybatis动态SQL介绍​编辑 一、案例 ①Mapper层 ②测试类 ③EmpMapper.xml ④结果​ 二、标签 (一)if where标签 ​①EmpMapper.xml ②案例 ③总结 (二)foreach标签 ①SQL语句 ②Mapper层 ③EmpMapper.xml ④…

基于GPTs个性化定制SCI论文专业翻译器

1. 什么是GPTs GPTs是OpenAI在2023年11月6日开发者大会上发布的重要功能更新,允许用户根据特定需求定制自己的ChatGPT模型。 Introducing GPTs 官方介绍页面https://openai.com/blog/introducing-gpts 在原有自定义ChatGPT的流程中,首先需要自己编制p…

HuggingFace模型头的自定义

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 在本文中我们将介绍如何使HuggingFace的模型适应你的任务,在Pytorch中建立自定义模型头并将其连接到HF模型的主体&#…

2023数据安全战场回顾:迅软科技助您稳固阵线

随着各行业的数字化转型不断深入,数据安全逐步进入法制化的强监管时代。然而,由于人为攻击、技术漏洞和监管缺位等原因,各种数据泄露事件频繁发生,企业数据安全威胁日益严峻。 以下是我对2023年第三季度安全事件的总结&#xff0c…

Maven Profile组设置

application.properties中xxxx

JS实现数据结构与算法

队列 1、普通队列 利用数组push和shif 就可以简单实现 2、利用链表的方式实现队列 class MyQueue {constructor(){this.head nullthis.tail nullthis.length 0}add(value){let node {value}if(this.length 0){this.head nodethis.tail node}else{this.tail.next no…

hosts文件地址

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址&…

Typescript -尚硅谷

基础 1.ts是以js为基础构建的语言,是一个js的超集(对js进行了扩展); 2.ts(type)最主要的功能是在js的基础上引入了类型的概念; Js的类型是只针对于值而言,ts的类型是针对于变量而言 Ts可以被编译成任意版本的js,从而进一步解决了…