大数据学习之Redis、从零基础到入门(三)

目录

三、redis10大数据类型

1.哪十个?

[1.1 redis字符串(String)](#1.1 redis字符串(String))

[1.2 redis列表(List)](#1.2 redis列表(List))

[1.3 redis哈希表(Hash)](#1.3 redis哈希表(Hash))

[1.4 redis集合(Set)](#1.4 redis集合(Set))

[1.5 redis有序集合(ZSet)](#1.5 redis有序集合(ZSet))

[1.6 redis地理空间(GEO)](#1.6 redis地理空间(GEO))

[1.7 redis基数统计(HyperLongLog)](#1.7 redis基数统计(HyperLongLog))

[1.8 redis位图(bitmap)​编辑](#1.8 redis位图(bitmap)编辑)

[1.9 redis位域(bitfiled)](#1.9 redis位域(bitfiled))

[1.10 redis流(Stream)](#1.10 redis流(Stream))

[2. Redis键(key)](#2. Redis键(key))

[2.1 keys *](#2.1 keys *)

[2.2 exists key](#2.2 exists key)

[2.3 type key](#2.3 type key)

[2.4 del key](#2.4 del key)

[2.5 unlike key](#2.5 unlike key)

[2.6 ttl key](#2.6 ttl key)

[2.7 expire key 秒钟](#2.7 expire key 秒钟)

[2.8 move key dbindex【0-15】](#2.8 move key dbindex【0-15】)

[2.9 select dbindex【0-15】](#2.9 select dbindex【0-15】)

[2.10 dbsize](#2.10 dbsize)

[2.11 flushdb](#2.11 flushdb)

[2.12 flushall](#2.12 flushall)


三、redis10大数据类型

1.哪十个?

1.1 redis字符串(String)

String(字符串)

hello world

string是redis最基本的类型,一个key对应一个value。

string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

1.2 redis列表(List)

List(列表)

A\>B\>C\>C

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边) 或者尾部(右边)

它的底层实际是个双端链表,最多可以包含 2^32 - 1 个元素(4294967295,每个列表超过40亿个元素)

1.3 redis哈希表(Hash)

Hash

{a:"hello",b:"world"}

k1 field v1

Redis hash 是一string 类型的 field (字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)

1.4 redis集合(Set)

Set

{A<B<C}

Redis 的 Set 是 String 类型的无序集合 。集合成员是唯一的,这就意味着集合中不能出现重复的数据 ,集合对象的编码可以是 intset 或者 hashtable. Redis 中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1(4294967295,每个集合可存储40多亿个成员)

1.5 redis有序集合(ZSet)

Sorted set(Zset)

{A:1,B:2,C:3} Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

zset集合是通过哈希表实现的,所以添加,删除,霍找的复杂度都是 O(1)。 集合中最大的成员数为 2^32 -1

1.6 redis地理空间(GEO)

Geospatial

{A:(50.1,0,5)}

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作[包括 添加地理位置的坐标。 获取地理位置的坐标。 计算两个位置之间的距离。 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合

1.7 redis基数统计(HyperLongLog)

Hyperlog

01101101 01101111 01101101

HVperLOCLOG 是用来基数统计的算法,HVperLOgLOg 的优点是,在输入元素的额量或者体积非常非常大时,计算基数所需的空间是固定日是很小的。 在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内就越多的集合形成鲜明对比。 日是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素.

1.8 redis位图(bitmap)

Bitmap

011011010110111101101101

一个字节(一个byte)= 8位

上图由许许多多的小格子组成,每一个格子里面只能放1或者0,用它来判断Y/N状态说的专业点,每一个个小格子就是一个个bit

1.9 redis位域(bitfiled)

Bitfield

{23334}{6634728}{916}

通过bitield命令可以一次性操作多个比特位期(指的是连续的多个比特位),它会执行一系列操作并返回一个响应数组,这个数组中的元 素对应参数列表中的相应操作的执行结果。 说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。

1.10 redis流(Stream)

Stream

{id1=time1.seq((a:"foo",b:"bar"))}

Redis Stream 主要用于消息队列(MQ, Messae Oueue),Redis 本身是有一个 Redis 发布订阅 (pub/sub)来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。 简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。 而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失

2. Redis键(key)

2.1 keys *

查看当前库所有的key

2.2 exists key

判断某个key是否存在

返回1存在,返回0不存在,返回2、3、4,说明有2、3、4个存在

2.3 type key

查看key的数据类型

2.4 del key

删除key

返回1,删除成功;返回0,没有此值

2.5 unlike key

非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作

2.6 ttl key

查看还有多少秒过期

-1表示永不过期,-2代表已经过期

2.7 expire key 秒钟

为给定的key设置过期时间

2.8 move key dbindex【0-15】

将当前数据库的key移动到给定的数据库db库中

一个redis默认带着16个数据库,默认使用的是0号库

2.9 select dbindex【0-15】

切换数据库【0-15】,默认为0

2.10 dbsize

查看当前数据库key的数量

2.11 flushdb

清空当前数据库

2.12 flushall

通杀全部库

相关推荐
Captaincc8 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
计算机魔术师9 小时前
德国Wiki被黑后两周,OpenAI终于把模型失控的账本摊开了
前端
kyriewen9 小时前
我让 AI 当面试官面了我一轮:第 3 个追问我就卡住了(附 10 道追问清单)
前端·面试·ai编程
IT_陈寒10 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
前端snow10 小时前
ai agent --- 多agent框架之图编排引擎-langgraph
前端
竹林81810 小时前
OmniPic Studio v3.2.1 核心技术架构与全平台发版解析文档
前端·浏览器
JamesZhang8007810 小时前
页面内存只涨不跌? 一次泄漏排查, 牵出 WeakMap 的诞生
前端
Z小明10 小时前
第 6 章 组件进阶
前端·vue.js
江华森10 小时前
HTTP请求的完整过程详解:从DNS解析到TCP挥手的微秒级实战分析
前端
南青10 小时前
Vue 3 中后台实战:我踩过的 10 个坑和最佳实践
前端