当前位置: 首页 > news >正文

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

文章目录

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

安装和初步

安装

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.lryc.cn/news/226768.html

相关文章:

  • 《红蓝攻防对抗实战》十二.内网穿透之利用ICMP协议进行隧道穿透
  • 【海德教育】国家开放大学和函授区别有:学校不同、入学门槛不同、学习方式不同、招生对象不同、学习年限不同,具体如下:
  • 单片机启动流程
  • Linux学习教程(第二章 Linux系统安装)2
  • 操作系统 | proc文件系统
  • 刷题笔记(第五天)
  • 【OpenHarmony内核】Harmony内核互斥性信号量
  • 给OFFICE增加一个功能搜索
  • 53基于matlab的Tamura纹理特征提取
  • C++初阶--类与对象(3)(图解)
  • 考研分享第1期 | 末9生物跨专业考研北京大学电子信息404分经验分享
  • openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库
  • 软件自动化测试平台
  • springMVC 导出Excel ,并提供下载(处理日期格式问题)
  • 软件工程理论与实践 (吕云翔) 第二章软件过程 课后习题及其答案
  • HTML跳转锚点
  • 新能源汽车高压线束是如何快速连接到测试设备上进行电性能测试的
  • Azure 机器学习 - 使用受保护工作区时的网络流量流
  • 强化学习中蒙特卡罗方法
  • Pytorch从零开始实战09
  • Milvus Cloud ——Agent 的展望
  • EM@比例恒等式@分式恒等式
  • 使用米联客FPGA开发板进行光口开发时遇到的问题总结
  • 【chat】 1:Ubuntu 20.04.3 编译安装moduo master分支
  • C#基于inpoutx64读写ECRAM硬件信息
  • 图论13-最小生成树-Kruskal算法+Prim算法
  • 免费博客搭建笔记
  • 网络运维Day10
  • @Cacheable 注解的 @CacheManager 示例
  • springboot二维码示例