Redis的8种数据类型

Redis五种基本数据类型 五种基本数据类型 redis无论什么数据类型,在数据库中都是以key-value形式保存,并且所有的key(键)都是字符串,所以讨论基础数据结构都是讨论的value值的数据类型 主要包括常见的5种数据类型,分别是:String、List、Set、Zset、Hash。 结构类型 结构存储的值 结构的读写能力 String字符串 可以是字符串、整数或浮点数 对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作; List列表 一个链表,链表上的每个节点都包含一个字符串 阅读详情

目录

一、概述

1、redis是什么

2、redis能干嘛

3、redis常识

        3.1、基本命令

        3.2、为什么redis是单线程

二、五大数据类型

1、String

2、List列表

3、Set

4、Hash

5、Zset有序集合

三、三种特殊数据类型

1、geospatial地理位置

2、hyperloglog

3、bitmaps


一、概述

1、redis是什么

        Redis:REmote DIctionary Server(远程字典服务器)
        是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key/Value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。

        Redis与其他key-value缓存产品有以下三个特点:

        1、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
        2、Redis不仅仅支持简单的 key-value 类型的数据,同时还提供list、set、zset、hash等数据结构的存储。
        3、Redis支持数据的备份,即master-slave模式的数据备份。

2、redis能干嘛

        内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

3、redis常识

        3.1、基本命令

        linux下redis的默认安装路径为:/usr/local/bin

        默认16个数据库,类似数组下标从0开始,初始默认使用1号库(索引为0)

              切换数据库命令:select x        查看DB大小:DBSIZE   数据库存储值:set  key vale  

              获取值:get key     exists key:判断是否存在该key值,存在该key值则返回1,不存在返回0

              keys *:查看数据库所有的key      flushdb:清空当前数据库      flushall:清空所有数据库

              expire key xxx:设置key值xxx秒过期        ttl key:查看该key值剩余多少秒过期

              persist key:取消过期                        type key:查看当前key的类型       

              dbsize:查看当前库的key的数量    

        3.2、为什么redis是单线程

                因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis 的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就 顺理成章地采用单线程的方案了。       

二、五大数据类型

1、String

           set key value:设置值        get key:获取值        del  key:删除key

           strlen key:获取该key值对应的value值的长度        

           append  key   "xxx":在该key对应的value值追加上xxx

           incr key:该key对应的value自增1        decr key:该key对应的value自减1'

           incrby key  xx:该key对应的value增加xx   decrby key  xx:减少xx

           getrange key x1 x2: 获取x1-x2范围内的值,类似between...and的关系,从零到负一表示全部

            String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。常规key-value缓存应用: 常规计数:微博数,粉丝数等

2、List列表

           所有的list命令都是用l开头的

           lpush  集合名   xx:将xx插入到集合头部        rpush:将xx插入到集合尾部

           lrange 集合名  x y:获取集合里x-y的值    (0  -1为获取集合中所有的值)

           lpop  集合名:移除该集合的左值         rpop:移除该集合的右值

           lindex  集合名   x:获取该集合中下标为x的值        llen  集合名:获取集合的长度

           lset 集合名 index xx:该集合下标为index的值更新为xx(不能添加)

           linsert  集合名  before  yy  xx:在集合中的yy值前面插入一个xx值

           linsert   集合名  after     yy xx:在集合中的yy值后插入一个xx值

总结:

        1、它是一个字符串链表,left,right 都可以插入添加

        2、如果键不存在,创建新的链表 如果键已存在,新增内容

        3、如果值全移除,对应的键也就消失了

        4、链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

        list就是链表使用Lists结构,我们可以轻松地实现最新消息排队等功能。List的另一个应用就是消息队列,可以利用List的PUSH操作,将任务存在List中,然后工 作线程再用POP操作将任务取出进行执行。Redis还提供了操作List中某一段的api,你可以直接查询,删 除List中某一段的元素。 Redis的list是每个子元素都是String类型的双向链表,可以通过push和pop操作从列表的头部或者尾部 添加或者删除元素,这样List即可以作为栈,也可以作为队.

3、Set

        set中的值是不能重复的

        sadd  集合名  值:向set集合中添加值        smembers  集合名:查看该set集合中所有的值

        srem 集合名 值:移除set集合中的某个值      srandmember 集合名:随机取出集合中的一个值

        spop 集合名:随机删除一些set集合中的元素   smove set1 set2 "xx":把set1中的xx移动到set2

        sdiff  set1 set2:差集        sinter set1 set2:交集        sunion set1 set2:并集       

4、Hash

        hset   集合名  key1   value1:给map集合中添加一个或者多个key-value键值对

        hget 集合名  key:获取对应的key的value值        hgetall 集合名:获取集合中所有的键值对

        hexists  集合名   key:判断该集合中的指定key是否存在    hkeys 集合名:获取集合中所有的key

5、Zset有序集合

        zadd 集合名   scroe值    xx:想集合中增加xx值,排序的时候通过score的值进行排序

        zrange 集合名 0 -1:查询集合中所有的值,默认按照score值的升序排列

        zrangebyscore 集合名  -inf +inf:按score值升序排列,可以用具体值替换+-inf,例如[-inf,2000]

        zrevrangebyscore  集合名   +inf -inf:按照score的值降序排列

        zrem  集合名  值:移除该集合中的指定元素        zcard  集合名:获取有序集合中的元素的个数

三、三种特殊数据类型

1、geospatial地理位置

        geoadd     MM    经度1 纬度1  城市1   经度2 纬度2 城市2:在MM中存储两个城市的位置信息

        geopos    MM     城市1:取出MM中指定城市的的经度和纬度

        geodist    MM    城市1  城市2   m/km:计算两个城市之间的距离,单位为m/km

        georadius     MM    经度 纬度 500km:MM下所有距离该位置半径为500km的范围内的城市

        georadiusbymember MM  城市1 1000km:找出MM下距离城市1000km范围内的城市

2、hyperloglog

        基数:一个集合中不重复的元素的个数        HyperLogLog则是一种算法,它提供了不精确的去重计数方案。

        优点:在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

        命令:

         [PFADD key element [element ...] 添加指定元素到 HyperLogLog 中。

         [PFCOUNT key [key ...] 返回给定 HyperLogLog 的基数估算值。

         [PFMERGE destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog,并 集计算

        测试:

3、bitmaps

        setbit key offset value : 设置 key 的第 offset 位为value (1或0)

# 使用 bitmap 来记录上述事例中一周的打卡记录如下所示:

# 周一:1,周二:0,周三:0,周四:1,周五:1,周六:0,周天:0 (1 为打卡,0 为不打卡)

127.0.0.1:6379> setbit sign 0 1

127.0.0.1:6379> setbit sign 1 0

127.0.0.1:6379> setbit sign 2 0

127.0.0.1:6379> setbit sign 3 1 

127.0.0.1:6379> setbit sign 4 1 

127.0.0.1:6379> setbit sign 5 0 

127.0.0.1:6379> setbit sign 6 0 

        getbit  key offset 获取offset设置的值,未设置过默认返回0 

127.0.0.1:6379> getbit sign 3 # 查看周四是否打卡

1

127.0.0.1:6379> getbit sign 6 # 查看周七是否打卡

0

        bitcount key [start, end] 统计 key 上位为1的个数 

# 统计这周打卡的记录,可以看到只有3天是打卡的状态:

127.0.0.1:6379> bitcount sign

3

Redis常用的五大数据类型 redis与传统sql数据库的取 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储,它还支持数据的备份,即master-slave模式的数据备份,同样Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 Redis支持的五大数据类型包括String(字符串 用法: 键 值),Hash(哈希 类似Java中的 map 用法: 键 键值对),List(列表 用法:键 集合 不可以重复),Set(集合 用法:... 阅读详情

相关推荐

(四十四)Redis8 新增的数据类型 -- Vector Set

本文介绍 Redis 8 新增的 Vector Set 数据类型 及其命令用法,包括向量集合创建与管理(如 VADD、VREM、VCARD、VDIM、VINFO)、元素访问(如 VRANGE、VISMEMBER)、属性管理(VSETATTR/VGETATTR)、相似度检索(VSIM、VLINKS)和获取向量值(VEMB)等操作,可用于高维向量存储与近邻搜索。

hanqunfeng的专栏 801

Redis 五大基本数据类型

Hash类型 ,也叫散列,是一个 key 对应多个 field-value 的映射结构, 相当于字典,适合存对象、结构化数据。List 是 Redis 基于双向链表实现的有序、可重复的字符串列表。一个 key 对应一串按顺序排列的元素,支持从左边、右边快速添加或删除。左推演示Set 是 Redis 无序、不可重复的 String 类型集合。一个 key 存一堆元素,自动去重,不保证顺序,支持交集、并集、差集。一个 key 存多个元素,每个元素绑定一个分数,Redis 按分数自动排序。

2301_81570045的博客 646

redis的五种数据类型

(1)Redis(Remote Dictionary Server 远程字段服务)是一个开源的使用ANSI C语言编写、支持网络、科技与内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。(2)Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string、list、set、zset(sorted set --有序集合)和hash。这些数据结构都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

学Java,找哪吒 6万+

Redis的八种数据类型介绍

redis,跳表

qq_40592590的博客 6003

Redis的8种数据类型,什么场景使用?

Redis的8种数据类型,什么场景使用?

qq_35267557的博客 204

Qt Creator菜单栏消失的终极修复指南:从快捷键冲突到设置恢复

本文详细解析了Qt Creator菜单栏消失的常见原因及修复方法,包括快捷键冲突排查、配置文件重置和界面模式切换等解决方案。特别针对Qt开发者遇到的菜单栏显示问题,提供了从简单快捷键操作到深度配置修改的全方位指南,帮助用户快速恢复Qt Creator的正常使用。

weixin_27240351的博客 333

Redis有哪些数据类型?

Redis有哪些数据类型?

laoshanyao1的博客 5041

工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用

CC-LINK-IE

好记性不如烂笔头 2万+

Redis8个基本数据类型

Redis的8个基础类型 1.String 特点:非常常用的数据类型,String能表达3种值的类型:字符串、整数、浮点数 100.01 是个六位的串 应用场景: 1、key和命令是字符串 2、普通的赋值 3、incr用于乐观锁 incr:递增数字,可用于实现乐观锁 watch(事务) 4、setnx用于分布式锁 2.list列表 特点:list列表类型可以存储有序、可重复的元素 获取头部或尾部...

a491108796的博客 726

星空组网 vs 蒲公英 vs Tailscale:2024年国内免费异地组网工具横评(含实测数据)

本文对2024年国内主流免费异地组网工具星空组网、蒲公英和Tailscale进行了深度横向评测。基于实测数据,重点分析了三者在P2P成功率、中继延迟、传输速度及稳定性方面的表现,为中小企业、远程办公及个人开发者提供了清晰的选择指南。星空组网在国内网络环境下展现出优秀的平衡性。

weixin_29217235的博客 1397

基于FPGA的示波器设计

ADC 、DAC、FPGA、LCD液晶、示波器

FDL_AQ的博客 1万+

学习笔记 | Redis 8大核心数据类型

Redis 有 8 种核心数据类型 string 字符串类型; list 列表类型; set 集合类型; sorted set 有序集合类型; hash 类型; bitmap 位图类型; geo 地理位置类型; HyperLogLog 基数统计类型。 string 字符串 string 是 Redis 的最基本数据类型。可以把它理解为 Mc 中 key 对应的 value 类型。string 类型是二进制安全的,即 string 中可以包含任何数据。 Redis 中的普通 string 采用 raw

大虎牙的博客 673

LRTimelapse Pro v7.0.0 激活版下载安装教程 (延迟摄影后期渲染)

LRTimelapse Pro 是一款优秀的高级延时摄影解决方案,使用将为用户提供最全面的工具和功能,从导入和组织您的延时摄影序列、视觉工作流程、在 LRTimelapse 中直接编辑和渲染、视觉去闪烁等等,功能齐全,可以使用 LRTimelapse Pro 编辑多个序列时显著提高您的效率,轻松在 LRTimelapse 中配置和使用色彩管理,进行长期延时编辑,在 LRTimelapse Pro 中使用长期工作流程。为延时编辑、关键帧、分级和渲染提供最全面的解决方案。

wyqshusan的博客 3460

Redis 8个数据类型及常用命令

Redis全称:REmote DIctionary Server(远程字典服务器)。是完全开源免费的。Key-Value数据库,它通常被称为数据结构服务器,并提供多种语言的API。 Redis 官网:https://redis.io/ Redis 中文官网:http://www.redis.cn/ Redis 在线测试:http://try.redis.io/ 下面涉及的...

Charge8的博客 1207

基于STM32、HAL库的SC16IS752IPW总线转UART驱动程序设计

/ FIFO空间不足。// 设置LCR寄存器的DLAB位为1以访问DLL/DLH。// 设置LCR寄存器,先访问DLL/DLH。// 设置LCR寄存器(不包含DLAB位)

corlin6688的博客 812

【YOLOv13多模态融合改进】| CFT:跨模态融合Transformer | 利用Transformer的自注意力机制,解决跨模态融合中的长距离依赖和全局信息整合问题

本文记录的是利用 CFT 模块改进 YOLOv13 的多模态目标检测网络模型。的设计出发点在于解决传统多模态检测中跨模态特征融合不充分的问题,即当不同模态数据需协同检测时,基于CNN的方法因局部卷积的局限性,难以捕捉长距离依赖和全局模态间的互补信息,导致复杂光照、遮挡等场景下检测精度不足。本文利用模块,将多模态特征序列拼接后自动学习模态内与模态间的交互权重,在特征提取阶段整合全局上下文信息,增强对不同模态互补特征的利用能力,从而提升模型在多模态场景下的检测鲁棒性与准确性。Cross-Modality Fus

Limiiiing的博客 534

Redis(上)基础及8种数据类型

Redis Redis 简介 Redis:REmote DIctionary Server(远程字典服务器) ​ 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key/Value)分布式内存数据库,基于内存运行, 并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。 Redis支持数据的持久化(RDB,AOF),可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的 key-value 类型的数据,同时

Oscarzcz的博客 334

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

Coding... 1万+

Redis 8 种数据类型

String : key -value 这是最简单Redis类型。如果你只用这种类型,Redis就像一个可以持久化的memcached服务器 List : 基于Linked Lists 实现的 ,添加元素快,查找元素慢 按插入顺序排序的字符串元素的集合 (维护的是正负索引) hash 你可以把它想象成一个 Map<Map<String , Object >> 的对象 Set 存储的是不重复且无序的字符...

qq_31967241的博客 308

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Redis(8)—— Redis列表数据类型

List(列表) 在redis里面,我们可以把list玩成 ,栈、队列、阻塞队列! 所有的list命令都是用l开头的,Redis不区分大小命令 ########################################################################## 127.0.0.1:6379> LPUSH list one # 将一个值或者多个值,插入到列表头部 (左) (integer) 1 127.0.0.1:6379> LPUSH list two (int

weixin_45418001的博客 191

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Redis 2.8 数据类型

1Redis数据类型1.1 StringKey'[{"CityId":18,"CityName":"xian","ProvinceId":27,"CityOrder":1},{"CityId":53,"CityName":"guangzhou","ProvinceId":27,"CityOrder":1}]'最为基础的数据存储类型。可以存储字符串和二进制数据,在Red...

weixin_33739541的博客 80

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

8.redis五大数据类型

redis五大数据类型 全局操作 查看所有的key: keys * 删除指定的key: del a 改名: rename a b 设置过期时间: expire a 10(单位秒) 查看key是否存在: exists a 查看剩余时间: ttl a 删除过期时间: persist a string类型(最大容纳大小为512M) 设置 set a 1 查...

ht_ford的博客 240

(二)Redis数据类型(8种)

String是Redis中最常用的一种数据类型,也是Redis中最简单的一种数据类型。首先,表面上它是字符串,但其实他可以灵活的表示字符串、整数、浮点数3种值。Redis会自动的识别这3种值。#ltrim127.0.0.1:6379> ltrim list 1 2 #通过下标截取指定的长度,这个list已经被改变了,只剩下我们所指定截取后的元素OK1) "v3"2) "v2"#rpoplpush。

星星学霸的博客 1112

redis学习-8-Redis数据类型与Lua脚本

redis学习-8-Redis数据类型与Lua脚本

时光 480

【Redis 5 教程04】 Redis 8种数据类型 底层数据结构和编码

文章目录Redis 5 8种数据类型参考链接 Redis 5 8种数据类型 Binary-safe strings Lists Sets Sorted sets Hashes Bit arrays (or simply bitmaps) HyperLogLogs Streams 参考 An introduction to Redis data types and abstractions 参考链接 String,List,Set,Zset,Hash五种类型 Redis极致设计-五大数据结构的底层结

技术改变世界 211

8.Redis的五种数据类型

8.Redis的五种数据类型

z19861216的博客 224
上一篇: 5分钟学会Springboot结合Mybatis Plus实现分页
下一篇: 使用Jedis连接阿里云服务器的redis
Rk..
博客等级 码龄7年 1万+粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rk..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值