Redis入门 理论+实操

简介: Redis 是基于内存的高性能键值型 NoSQL 数据库,支持 String、Hash、List、Set 等多种数据结构,具备单线程高并发、毫秒级响应、主从集群、持久化及多语言客户端(如 Jedis、Lettuce、Redisson)等特性,广泛用于缓存、会话存储与实时数据处理。

1.首先Redis是什么?
redis是一个基于内存的键值对的一种NoSQl数据库,是远程词典服务器,他的存储方式是通过key 来获取对应的value值,通常如果你要从一个地方去拿取数据,是不会写一大堆的键值对,是通过把这一类的数据类型写成对应的json数据格式存储到value里面。

Redis的特征
首先是键值型,value支持多种不同的数据结构,约束性不强

redis 的一些命令都是由单线程执行,在网络传输的情况下是多线程

速度非常快,因为基于内存 ,所以他的性能非常高

内存持久化,因为电脑内存在重启后就会消失,所以会定期的去存入磁盘当中

支持主从集群, 如果主数据出现问题,那么从数据就可以提供

多语言都支持

Redis的数据类型
String

Hash

List

Set

SortedSet

以上几种是基本数据类型

GEO

BitMap

HyperLog

这几种属于特殊类型

Redis为了方便我们学习,把操作不同的数据类型的命令做了分组,在官方网站( Commands | Docs ) 可以查看不同的命令

Redis通用命令
KEYS: 查看符合模版的所有key (不适合在生产设备上使用)

DEL:一个指定的key

EXISTS:判断key是否存在

EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除

TTL:查看一个KEY的剩余有效期

tips: 通过help[command] 可以查看一个命令的具体用法

String类型
字符串类型,是最简单的存储类型

虽然value也是字符串,但是可以根据格式不同,分为string(普通字符串),int(整数),float(浮点类型),他们的底层原理都是字符数组的形式存储

String类型的常见命令
image
image
1071×555 87.9 KB
Hash类型
Hash类型的value就是一个无序字典,类似java 中的HashMap

相比于String类型的机构,如果说你想对把java对象序列化的数据进行修改是非常麻烦的,只能重新更新一下,但是Hash结构可以将每个字段单独存储,可以对每一个字段进行修改。

Hash类型的常见命令

HSET key field value : 添加或者修改hash类型key的field的值

HGET key field : 获取一个hash类型key的field的值

HMSET : 批量添加多个hash类型key 的field的值

HMGET: 批量获取多个hash类型key的field的值

HGETALL:获取一个hash类型的key中的所有field和vlaue

HKEYS: 获取一个hash类型的key中的所有field

HVALS:获取一个hash类型的key中的所有value

HINCRBY:让一个hash类型key的字段值自增并指定步长

HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行

List类型
这里的List类型和java的LInkedList类似,也算是一个双向链表的结构,支持正反向检索,他的特性也跟Java的LinkedList类似

通常存储的是有序的数据。

常见命令
LPUSH key element…:向列表左侧插入一个或多个元素

LPOP key : 移除并返回列表左侧的第一个元素,没有则返回nil

RPUSH key element … : 向列表右侧插入一个或多个元素 RPOP key :移除并返回列表右侧的第一个元素

LRANGE key star end : 返回一段角标范围内的所有元素

BLPOP和BRPOP : 与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

Set类型
他的结构也是跟Java的HashSet类似,可以看做是一个value为空的HashMap,因为他的底层也是一个哈希表,所以是具备类似的特征

特征: 无序 元素不可重复 查找速度快 支持交集并集差集

常见命令:
SADD key member …:向set中添加一个或多个元素

SREM key member … : 移除set中的指定元素

SCARD key : 返回set中元素的个数

SISMEMBER key member: 判断一个元素是否存在与set中

SEMEBERS: 获取set中的所有元素

SINTER key1 key2 …: 求key1 与key2的交集

SDIFF key1 key2 …: 求key1与key2的差集

SUNION key1 key2 …: 求key1 和 key2 的 并集

Key的层级格式
redis是没有表的概念的,如果说有2个相同的id,那怎么区分?

Redis的key是允许多个单词形成一个层级结构,用:隔开

如果value存储的是一个java对象(实体类),那么我们可以用json序列化java对象,进行存储

2.NoSQL是什么?
NoSQL 就是非关系的数据库, 和平常了解的SQL(关系型数据库) 是有天壤之别

(1)NoSQL和SQL的区别
在结构上面
NoSQL 是非结构化的,也就是说他不像SQL一样有一定的要求,SQL可以对字段进行约束,如果擅自对一个字段修改,可能会跟很多的表有关联,会带来非常严重的后果。

NoSQL也不是说一点约束没有,他也有几种数据存储的类型,比如说到的键值对的类型(key value),还有文档类型,把数据都封装成一条条的json类型,类似SQL中的一行数据(包含多个字段)但是没有SQL的约束那么强,还有Graph的节点类型,这种类型相对于不常用

在关联性方面
NoSQL是非关联性的,跟SQL相比,SQL是可以通过外键和其他的约束来把表与表之前的关系联系起来,NoSQL就并没有这种关联性,一般都是json的嵌套方式进行(因为并没有表)

SQL查询
他们之前也是很大的差别,比如SQL在查询数据的时候通常是有一套固定的语法这样都能使用相同的语句进行查询,相当于语法统一,但是NoSQL的语法相当于不固定,每个都有自己的一套语法,

事务方面
在SQL中,为了保持数据的一致性,通常会存在事务,他们必须满足(ACID),但是在NoSQL中,通常是没有事务的特性,就算有,那也很难做到数据的一致性

存储方式
SQL使用的是磁盘的存储方式,为了数据的安全性, 但是NoSQL使用的是内存的存储方式,也就是说电脑重启就数据就不会再有,但是他的查询性能非常的高,不同环境下即可使用不同的方式

Redis的Java客户端
jedis: 用redis的命令作为方法的名称,上手快,实用,但是线程是不安全的,在多线程并发的情况下要给每个线程搭配线程池使用

lettuce: 底层是基于Netty实现,支持同步异步,线程的是非常安全的,也支持Redis的哨兵模式

Redisson: 是基于Redis实现的一个数据集合,包含了很多强大的功能,在需要使用这些功能的需求下适用

目录
相关文章
|
5天前
|
人工智能 安全 API
CoPaw:5分钟部署你的 AI助理
源自阿里巴巴开源生态的个人 AI 助理——CoPaw。作为阿里倾力打造的开源力作,CoPaw 完美打通钉钉、飞书、Discord 等多平台对话通道,支持定时任务自动化。内置 PDF/Office 深度处理、新闻摘要等强大技能,更开放自定义扩展接口。坚持数据全程私有化部署,绝不上传云端,让每一位用户都能在大厂技术加持下,拥有安全、专属的智能助手。
|
8天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
9406 76
|
6天前
|
人工智能 安全 JavaScript
阿里云上+本地部署OpenClaw(小龙虾)新手攻略:解锁10大必备Skills,零基础也能玩转AI助手
2026年,开源AI代理工具OpenClaw(昵称“小龙虾”)凭借“能实际做事”的核心优势,在GitHub斩获25万+星标,成为现象级AI工具。它最强大的魅力在于可扩展的Skills(技能包)系统——通过ClawHub插件市场的数百个技能,能让AI助手从简单聊天升级为处理办公、学习、日常事务的全能帮手。
4793 13
|
7天前
|
人工智能 自然语言处理 机器人
保姆级教程:Mac本地搭建OpenClaw及阿里云上1分钟部署OpenClaw+飞书集成实战指南
OpenClaw(曾用名Clawdbot、Moltbot)作为2026年最热门的开源个人AI助手平台,以“自然语言驱动自动化”为核心,支持对接飞书、Telegram等主流通讯工具,可替代人工完成文件操作、日历管理、邮件处理等重复性工作。其模块化架构适配多系统环境,既可以在Mac上本地化部署打造私人助手,也能通过阿里云实现7×24小时稳定运行,完美兼顾隐私性与便捷性。
4921 11
|
9天前
|
人工智能 JSON JavaScript
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
5236 13
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
|
8天前
|
人工智能 监控 机器人
2026年零门槛部署 OpenClaw(Clawdbot)接入A股数据,实现24小时股票分析保姆级教程
在AI赋能金融分析的浪潮中,OpenClaw(原Clawdbot/Moltbot)凭借开源灵活的架构,成为个人投资者打造专属智能分析助手的首选。通过接入A股实时数据,它能实现24小时市场监控、涨跌预警、潜力股推荐等核心功能,彻底解放人工盯盘的繁琐。而阿里云的稳定部署环境,更让这套系统实现全天候不间断运行,成为真正的“金融AI助手”。 本文基于OpenClaw v2026.1.25稳定版与QVeris免费A股数据接口,详细拆解阿里云OpenClaw部署步骤、A股数据接入流程、高级分析功能配置及多平台联动技巧,所有代码命令均可直接复制复用,即使无技术基础也能在1小时内完成从部署到实战的全流程。
3651 12
|
4天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
2323 6