Redis初识

目录

前言

一、Redis是什么?

二、下载与安装

1.下载

2.安装

3.启动Redis

三、Redis操作

3.1基本操作

3.2五种常用数据类型

3.2.1.string

基础命令

数值型数据

 3.2.2 Hash

基础命令

3.2.3 List

基本操作

 3.2.4 Set

基本使用

3.2.5 sorted_set

基础操作

总结

前言

由于关系型数据库本身存在性能瓶颈和扩展困难的问题,导致系统在面对高并发访问时越来越力不从心。这个时候,出现了一种全新的数据库设计理念,也就是使用非关系型数据库,仅存储数据,不存储关系。下文将详细介绍一种非关系型数据库:Redis

一、Redis是什么?

Redis(REmote DIctionary Server)是一款用C语言开发的一个开源高性能键值对(key-value)数据库。该数据库内部采用单线程机制进行工作且在该中线程机制下依然能保持良好的性能,官方提供测试数据表示50个并发下,执行100000 个请求,读的速度是110000 次/s,写的速度是 81000次/s。

二、下载与安装

1.下载

Linux 版 (适用于企业级开发)

  • Redis 高级开始使用
  • 以4.0 版本作为主版本

Windows 版本 (适合零基础学习)

  • Redis 入门使用 以 3.2 版本作为主版本
  • 下载地址:https://github.com/MSOpenTech/redis/tags

2.安装

Redis压缩文件夹解压即安装

3.启动Redis

服务器启动

方式1:双击redis-server.exe

方式2:指令redis-server.exe redis.windows.con

客户端连接

 

三、Redis操作

3.1基本操作

添加数据

命令:set key value

例如:set person teacher

查询信息

命令:get key

清空屏幕

命令:clear

帮助

命令:help 命令名称

退出客户端命令行

命令:quit exit

3.2五种常用数据类型

stringString
hashHashMap
listLinkedList
setHashSet
sorted_setTreeSetuiuu

3.2.1.string

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
  • 存储数据的格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用

基础命令

set key value===>添加修改数据

get key===>获取

del key ===>删除

mset key value key value...===>批量添加

mget key key key...===>批量获取

strlen key===>获取数据长度

getrange key 位置 位置===>获取指定key的位置数据

setrange key index value===>修改部分值

getset key value===>修改值,并返回原数据

数值型数据

如果想要利用decrby给一个正值,只需要给一个负的value即可

具有生命周期的数据

setex key seconds value===>设置键的过期时间

ttl key ===>查看key的剩余时间

如果某个key已经被实例化出来,这个时候要设置过期时间,可以使用EXPIRE key seconds命令

 3.2.2 Hash

  • 存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息
  • 存储结构:一个存储空间保存多个键值对数据
  • hash类型:底层使用哈希表结构实现数据存储

基础命令

添加/修改数据

格式:hset key field value

获取数据

格式:hget key field

格式:hgetall key

添加/修改多个数据

格式:hmset key field1 value1 field2 value2 …

获取多个数据

格式:hmget key field1 field2 …

获取哈希表中所有的字段名或字段值

格式:hkeys key

格式:hvals key

获取哈希表中字段的数量

格式:hlen key

获取哈希表中是否存在指定的字段

格式:hexists key field

设置指定字段的数值数据增加指定范围的值

格式:hincrby key field increment

格式:hincrbyfloat key field increment

注意事项:

1.hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取 到,对应的值为(nil)

2.每个 hash 可以存储 2^32^-1个键值对

3.hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了 存储大量对象而设计的,因此不可滥用,更不可以将hash作为对象列表使用 4.hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数 据访问瓶颈

3.2.3 List

  • 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
  • 存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  • list类型:保存多个数据,底层使用双向链表存储结构实现

基本操作

添加/修改数据

lpush key value1 [value2] ……

rpush key value1 [value2] ……

获取数据

lrange key start stop

lindex key index

llen key

获取并移除数据

lpop key rpop key

更新操作

lset key 下标 新数据

作用:lset将列表中指定下标的值替换为另外一个值,

# 如果不存在列表我们去更新就会报错

将某个具体的value插入到列中的某个元素的前面或者后面!

LINSERT mylist before "world" "other"

LINSERT mylist after "world" "other"

注意事项

1.list中保存的数据都是string类型的,数据总容量是有限的,最多2^32^-1个元素 (4294967295)

2.list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出 栈操作

3.获取全部数据操作结束索引设置为-1

4.list可以对数据进行分页操作,通常第一页的信息来自于list,第2页及更多的信息通过数据库的形式加 载

 3.2.4 Set

  • 存储需求:存储大量的数据,在查询方面提供更高的效率
  • 存储结构:能够保存大量的数据,高效的内部存储机制,便于查询
  • set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的

基本使用

 添加数据

sadd key member1 [member2]

获取全部数据

smembers key

删除数据

srem key member1 [member2]

获取集合数据总量

scard key

判断集合中是否包含指定数据

sismember key member

3.2.5 sorted_set

基础操作

添加数据

zadd key score1 member1 [score2 member2]

获取全部数据 

zrange key start(开始索引) stop(结束索引) [WITHSCORES]

注意:[WITHSCORES]表示 除了数据还 可以显示分值

反转

zrevrange key start stop [WITHSCORES]

删除数据

zrem key member [member ...]

获取集合数据总量

zcard key

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Redist的使用,包括Redis下载安装、几种数据类型,以及指令操作方式,感谢收看,哈哈哈哈哈。

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

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

相关文章

深度ESP32 PWM教程如何在ESP32 中使用PWM

关于ESP32PWM的简要说明 ESP32 SoC 满载了非常有用的外设,PWM 就是其中之一。是的。ESP32 的芯片中有一个专用的 PWM 硬件模块。脉宽调制或简称PWM是一种成熟且广泛使用的供电技术。 您可以使用 ESP32 的 PWM 来驱动 LED、电机(普通直流电机和无刷电机…

jmeter 计数器Counter

计数器可以用于生成动态的数值或字符串,以模拟不同的用户或数据。 计数器通常与用户线程组结合使用,以生成不同的变量值并在测试中应用。以下是计数器的几个常用属性: 变量前缀(Variable Name Prefix):定义…

开源协议对比:局限性、应注意事项与详细对比

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

生成式AI的JavScript技术栈

如果不使用新的软件基础设施技术,就很难理解它们。 至少,a16z 基础设施团队发现了这一点,而且因为我们中的许多人都是以程序员的身份开始职业生涯的,所以我们经常通过实践来学习。 尤其是生成式AI浪潮的情况尤其如此,它…

go语言的高级特性

go语言调用C语言 go tool cgo main.go

使用openWRT 配置SFTP 实现远程文件安全传输

文章目录 前言 1. openssh-sftp-server 安装2. 安装cpolar工具3.配置SFTP远程访问4.固定远程连接地址 前言 本次教程我们将在OpenWRT上安装SFTP服务,并结合cpolar内网穿透,创建安全隧道映射22端口,实现在公网环境下远程OpenWRT SFTP&#xf…

【漏洞复现】2023HVV WPS Office 远程代码执行漏洞(RCE)

文章目录 前言声明一、漏洞描述二、影响范围三、漏洞复现服务端的功能客户端的功能 四、修复建议 前言 2023HVV期间曝出的WPS Office 存在RCE漏洞,攻击者可通过该漏洞执行任意命令,获取服务器控制权限。 声明 请勿利用文章内的相关技术从事非法测试&am…

PostgreSQL PG15 新功能 PG_WALINSPECT

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis ,Oracle ,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加微信号 liuaustin3 (…

Tomcat环境变量配置教程

1、在官网下载并解压Tomcat,记住解压好的目录,后面配置环境需要用到。 官网地址:Apache Tomcat - Welcome! --- 阿帕奇雄猫 - 欢迎! 2、右键此电脑(我的电脑)->属性->高级系统设置->环境变量 3、…

旅游APP外包开发注意事项

旅游类APP通常具有多种功能,以提供给用户更好的旅行体验。以下分享常见的旅游类APP功能以及在开发和使用这些APP时需要注意的问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 常见功能…

QT(9.4)tcp通信,数据库,opencv,

作业&#xff1a; 1.服务器 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket>//客户端头文件 #include <QMessageBox>//消息对话框头文件 #include <QTcpServer>//服务器头文件 #include <list>…

NIFI实现JSON转SQL并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的&#xff0c;所有的配置参考&#xff1a;docker安装Apache NIFI 需求背景 现在有一个文件&#xff0c;里面存储的是一些json格式的数据&#xff0c;要求将文件中的数据存入数据库表中&#xff0c;以下是一些模拟的数据和对应的数据库…