Redis数据类型

redis数据类型 数据类型典型场景字符串缓存、计数器、分布式锁哈希对象存储、配置信息列表消息队列、最新动态集合去重、共同好友、标签系统有序集合排行榜、热门列表、时间线位图用户签到、活跃用户统计大数据量基数统计(UV)地理空间位置服务、附近的人 / 店铺。 阅读详情

一、String

1、概述

在这里插入图片描述

2、set / get / append / strlen

set key value  #存放数据
get key value  #获取数据
append key value   #Redis的append命令是往一个key追加value。如果没有key,则创建一个并且设置value
strlen key     #获取指定Key的字符长度

例:
exists test
append test "hello"
append test " world"
get test
set test srs
get test
strlen test

在这里插入图片描述

3、incr / decr / incrby / decrby

incr key	#该Key的值递增1
decr key 	#该Key的值递减1
incrby key increment	#增加指定的整数
decrby key increment    #减少指定的整数

例:
exists number
incr number
incr number
decr number
incrby number 10
decrby number -20
decrby number 20
get number

set number hello
get number
incr number

4、getset

getset key value #获取计数器原有值的同时,并将其设置为新值,这两个操作原子性的同时完成

例:
set test2 10
getset test2 0
get test2

5、setex

setex key seconds value  #设置指定Key的过期时间为xx秒
ttl key     #查看键的剩余存活时间

例:	
setex test2 10 'hello'
ttl test2
get test2
等待10s
get test2
ttl test2
set test2 'hello'
ttl test2

6、setnx

setnx key value #创建指定键,若该键存在则不执行,不存在则执行

例:
exists test3
setnx test3 "zhangsan"
setnx test3 "lisi"
get test3

7、mset / mget / msetnx

mset key value		#批量设置键的值
mget key		    #批量获取键的值
msetnx key value	#批量设置键值,若有存在的键则不执行

例:
mset k1 111 k2 222
mget k1 k2
msetnx k3 333 k4 444
mget k3 k4
msetnx k4 1234 k5 555
mget k4 k5

二、List数据类型

在这里插入图片描述

1、lpush / lpushx / lrange

lpush key value 	#该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入到表头
lpushx key value    #该命令仅当key存在时,将value值插入表头
lrange key start stop	#返回列表中指定区间内的元素,0表示第一个元素,1表示第二个元素

例:
lpush letter a b c d
lrange letter 0 -1
lrange letter 1 2
lpushx letter2 e
lrange letter2 0 -1
lpushx letter e
lrange letter 0 -1

2、lpop / llen

lpop key	#移除并返回第一个元素,从头开始
llen key	#查看列表中元素个数

例:
del letter
lpush letter a b c d
lrange letter 0 -1
lpop letter
lpop letter
lrange letter 0 -1
llen letter

3、lrem / lset / lindex / ltrim

lrem key count value	#从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量
lset key index value    #将索引值为xxx的元素值设置为新值xxx
lindex key index    	#获取索引值为xxx的元素值。
ltrim key start stop	#仅保留索引值xxx到xxx的元素

例:
del letter
lpush letter a b c d a c
lrange letter 0 -1
lrem letter 2 a
lrange letter 0 -1
lindex letter 1
lset letter 1 e
lindex letter 1
lindex letter 6
lset letter 6 h
ltrim letter 0 2
lrange letter 0 -1

4、linsert

linsert key BEFORE|AFTER pivot value	#在键的xxx元素前|后插入新元素元素 

例:
del letter
lpush letter a b c d e
lrange letter 0 -1
linsert letter before a 1
lrange letter 0 -1
linsert letter after e f
lrange letter 0 -1
linsert letter after g k
linsert letter1 after a b

5、rpush / rpushx / rpop / rpoplpush

rpush key value		#将值从左往右依次插入到表尾
rpushx key value	#指定键存在时执行,否则不执行
rpop key		    #移除并返回键的第一个元素,从尾开始
rpoplpush source destination	#将键1尾部元素xxx弹出,同时再插入到键2的头部(原子性的完成这两步操作)

例:
del letter
rpush letter a b c d e
lrange letter 0 -1

rpushx letter f
lrange letter 0 -1
rpushx letter2 f

lrange letter 0 -1
rpop letter
lrange letter 0 -1
rpoplpush letter letter2
lrange letter 0 -1
lrange letter2 0 -1
rpoplpush letter letter
lrange letter 0 -1

三、Hash数据类型(散列类型)

在这里插入图片描述

1、hset / hget / hdel / hexists / hlen / hsetnx

hset key field value     #给xxx键设置字段为xxx,值为xxx
hget key field		     #获取xxx键,字段为xxx的值
hdel key field		     #删除xxx键的xxx字段,成功返回1
hexists key field	     #判断xxx键中的xxx字段是否存在,存在返回1
hlen key		         #获取xxx键的字段数量
hsetnx key field value	 #给xxx键添加新字段,是否执行基于此字段是否存在,不管键是否存在,返回1表示执行成功

例:
hset myhash field1 a field2 b field3 c
hget myhash field1
hdel myhash field2

hexists myhash field2
hexists myhash field1
hlen myhash

hsetnx myhash1 field3 d
hget myhash1 field3
hsetnx myhash field3 d

2、hincrby

hincrby key field increment		#给xxx键的xxx字段值加x

例:
HEXISTS myhash2 field1
hincrby myhash2 field1 5
hincrby myhash2 field1 -10
hget myhash2 field1

3、hmset / hmget / hgetall / hkeys / hvals

hmset key field value   #批量为xxx键创建字段和赋值
hmget key field		    #获取指定多个字段值
hgetall key		        #返回xxx键的所有字段及其值,是逐对列出的
hkeys key		        #仅获取xxx键中所有字段名
hvals key		        #仅获取xxx键中所有字段值

例:
hmset myhash3 field1 hello field2 world
hmget myhash3 field1 field2 field3
hgetall myhash3
hkeys myhash3
hvals myhash3

四、set数据类型(无序集合)

在这里插入图片描述

1、sadd / smembers / scard / sismember

sadd key member			#将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合
smembers key			#通过smembers命令查看插入的结果,输出的顺序与插入顺序无关
scard key			    #获取集合中成员的数量
sismember key member	#判断键中xxx成员是否存在,返回0表示不存在,1表示存在

例:
sadd myset a b c
sadd myset c d e
smembers myset
scard myset
sismember myset c
sismember myset f

2、spop / srem / srandmember / smove

spop key			             #随机的移除并返回键中的某一成员
srem key member1 member1 ...	 #从键中移出member成员,并返回移出成员个数
srandmember key		             #该命令随机的返回某一成员
smove source destination member  #将source的member成员移到destination,成功返回1,失败返回0

例:    
sadd myset2 a b c d e f
smembers myset2
srandmember myset2
spop myset2
smembers myset2
srem myset2 a b c 
smembers myset2
smove myset2 myset22 e
smove myset2 myset22 e
smembers myset2
smembers myset22

五、Sorted Set数据类型(zset、有序集合)

在这里插入图片描述

1、zadd / zcard / zcount / zrem / zincrby / zscore / zrank

zadd key [NX|XX] [CH] [INCR] score member [score member ...]	#将一个或多个成员元素及其分数值加入到有序集当中
zrange key start stop [withscores]   #查看成员;加withscores可显示成员加分数
zcard key		                #获取键中成员的数量
zcount key min max		        #分数满足表达式x <= score <= x的成员的数量
zrem key member [member ...]	#删除成员xxx、xxx,返回实际删除成员的数量
zincrby key increment member	#成员xxx不存在,zincrby命令将添加该成员并假设其初始分数为0
zscore key member		        #获取成员xxx的分数
zrank key member		        #获取成员xxx的位置索引值

例:
zadd myzset 1 a 2 b 3 c 4 d 5 e
zrange myzset 0 -1
zrange myzset 0 -1 withscores

zrank myzset a
zrank myzset f
zcard myzset
zcount myzset 3 5
zrem myzset d e
zcard myzset

zscore myzset c
zincrby myzset 2 d
zincrby myzset -1 d

2、zrangebyscore / zremrangebyrank / zremrrangebyscore

zrangebyscore key min max		#获取分数满足表达式x <= score <= x的成员
zremrangebyrank key start stop	#删除位置索引满足表达式x <= rank <= x的成员。
zremrangebyscore key min max	#删除分数满足表达式x <= score <= x的成员,并返回实际删除的数量。

例:
zadd myzset2 1 a 2 b 3 c 4 d 5 e
zrangebyscore myzset2 2 4
zrangebyscore myzset2 (2 4
zrangebyscore myzset2 -inf +inf limit 2 3
zremrangebyscore myzset2 1 3
zrange myzset2 0 -1
zremrangebyrank myzset2 1 2
zrange myzset2 0 -1

3、zrevrange / zrevrangebyscore / zrevrank

zrevrange key start stop [withscores]	#以位置索引从高到低的方式获取并返回此区间内的成员
zrevrangebyscore key max min	#获取分数满足表达式x >= score >= x 的成员,并以从高到底的顺序输出。
zrevrank key member	 		    #获取成员索引

例:
zadd myzset3 1 a 2 b 3 c 4 d 5 e
zrange myzset3 0 -1
zrevrange myzset3 0 -1
zrevrange myzset3 1 3

zrevrank myzset3 a
zrevrank myzset3 d
zrevrangebyscore myzset3 5 3
zrevrangebyscore myzset3 3 1 limit 1 2
zrevrangebyscore myzset3 +inf -inf limit 1 2
Spec-Kit实战:用‘规范驱动开发’重构一个老旧Node.js项目(避坑指南) 本文详细介绍了如何使用Spec-Kit工具通过‘规范驱动开发’(SDD)重构老旧Node.js项目。从逆向工程提取规范到增量改造策略,再到避免典型陷阱,提供了实战指南和避坑技巧,帮助开发者高效实现架构现代化,显著提升代码质量和维护效率。 阅读详情

相关推荐

华为云Stack扩容实战:从CMDB配置到计算节点增减容,一份避坑指南

本文详细解析华为云Stack扩容实战,从CMDB配置到计算节点增减容的全流程操作指南。通过典型场景案例和避坑建议,帮助企业高效管理计算资源扩容与减容,确保业务连续性。特别针对华为云Stack的弹性扩容能力提供专业指导,涵盖存储、网络及自动化工具链的配合使用。

weixin_30591551的博客 479

Redis 数据类型

2、充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如所有购买某–电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们想获取有哪些客户同时购买了这两种商品时,Set的intersections 命令就可以充分发挥它的方便和效率的优势了。redis无论什么数据类型,在数据库中都是以key-value形式保存,并且所有的key(键)都是字符串,所以讨论基础数据结构都是讨论的value值的数据类型。

fhjtg的博客 1713

CST电子枪仿真实战:从零搭建粒子追踪模型到磁场聚焦优化

本文提供了一份CST电子枪仿真实战指南,详细讲解了从零开始搭建粒子追踪模型的全过程。内容涵盖项目初始化、Track Solver求解器基础、几何建模、粒子源定义,并重点介绍了如何通过引入和优化静磁场(如聚焦线圈配置)来实现电子束的聚焦,帮助工程师高效预测和优化束流品质。

game4的博客 335

Redis redis五种数据类型和使用场景

一、redis基本基本介绍 1、 redis解决分布式环境下缓存不同步 让缓存集中处理(大家使用同一个缓存服务),我们需要一个类似于MYSQL这样可以通过服务来提供第三方的缓存工具(缓存服务器);流行的第三方缓存服务器:memcache/redis 2、REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统(...

m0_38068812的博客 8675

C# 上位机开发完全指南:从零开始构建工业控制系统

摘要: 本文详细介绍了使用C#开发工业自动化上位机系统的关键技术和方法。上位机作为工业控制的核心枢纽,负责与PLC、传感器等设备通信,实现数据采集、监控和控制。开发基于C#的上位机需掌握Windows Forms/WPF界面设计、Modbus/OPC等通信协议,以及SQL数据库存储。文章分步讲解了环境搭建、界面设计、设备通信(以Modbus和TCP/IP为例)、数据存储与展示等关键环节,并强调多线程优化与异常处理的重要性。通过C#和.NET技术栈,开发者能够构建高效稳定的工业控制系统,未来可扩展至云平台和物

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1013

【七.三维视觉与视频分析】【1.点云处理:PointNet++/PointTransformer】

各位老铁,今天咱们要聊的可不是普通的二维图像处理,而是三维视觉领域最硬核的技术——点云处理。从最早的PointNet到如今的PointTransformer,这场技术进化堪比三维版的"像素革命"。今天咱们就深入解剖两大里程碑:PointNet++和PointTransformer,保证让你看完全文就能在点云领域横着走!想象一下,你抓了把沙子撒在空中,每粒沙子的位置都是三维坐标——这就是点云的典型形态。最后送大家一句话:点云处理就像在三维宇宙中寻找星辰的轨迹,既要望远镜的宏观视野,也要显微镜的细致入微。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 473

认识Redis与Redis的数据类型

本文作为Redis的入门教程,旨在让大家对Redis有一个概念性和整体性的认识,并且可以快速上手,为深入Redis打下基础。 文章概要: Redis的介绍 Redis与其他数据库的对比 Redis与其他缓存实现对比 Redis的数据结构类型 Redis命令操作几种数据类型 Spring Data Redis操作几种数据类型 ZSET(有序集合)保证顺序 SET(集合)随机获取元素 目录 ...

西召 1563

25、量子计算:中性原子与约瑟夫森结量子比特

本文详细探讨了中性原子和约瑟夫森结两种量子比特在量子计算中的应用。中性原子量子比特利用光晶格实现量子态的操控,具有长相干时间的优势,但面临可扩展性和多量子比特操作的挑战;而约瑟夫森结量子比特基于超导技术,结合半导体制造工艺,具有低耗散和潜在的高可扩展性,但在参数控制和环境干扰方面存在难题。文章还比较了这两种方案的性能、应用场景及未来发展趋势,展望了它们在量子计算发展中的潜力与突破方向。

ol789012的博客 211

redis的数据类型

上一章我也简单的介绍了一下,数据类型,这张我们详细进行讲解一下。(有的内容可能会和上一章有重复,大家可以直接跳到自己想看的地方)

2401_85440017的博客 2606

【AUTOSAR SystemServices】AUTOSAR CP中Watchdog Manager模块技术解析

本文深入解析了AUTOSAR中的Watchdog Manager模块实现。该模块通过多层次监督机制(Alive/Deadline/Logical Supervision)确保系统安全运行,具备动态模式切换和分级故障处理能力。 关键实现包括: 数据结构设计:包含监督实体状态结构体(实时状态维护)、监督配置结构体(支持模式切换)和全局状态信息(系统级监控) 核心流程优化:初始化采用事务性设计,检查点处理通过条件编译优化,主监控循环采用流水线式并行处理 监督机制实现:Alive监督采用滑动窗口算法,Deadlin

1038

信息安全管理与评估赛题解析-单机取证(含环境)

链接:https://pan.baidu.com/s/1OMzIq884dW2vAiUp0k2Ppg。链接:https://pan.baidu.com/s/1i5daMqhD53wYeQ6hYzRK6Q。链接:https://pan.baidu.com/s/1QFAjdQZK4sJ-gGRP42XPKA。链接:https://pan.baidu.com/s/1BSXvqN2ZGCQXewgFULoeyQ。链接:https://pan.baidu.com/s/1g9zu5ngBz_KMjW1eBMkJAw。

Brucye 1833

【Redis原理】Redis基本数据类型及其原理

Redis支持多种数据类型,各有特点及应用场景:String(字符串)可存储文本、数字或二进制数据,适用于缓存、计数和简易分布式锁;List(列表)按插入顺序存储元素,适合最新动态展示和简单消息队列;Hash(哈希表)存储键值对,用于对象数据存储;Set(集合)存储唯一元素,支持集合运算,适用UV统计和好友推荐;Zset(有序集合)按分值排序,适合排行榜和优先级队列;BitMap(位图)通过二进制位节省空间,适用于签到统计和用户在线状态。

gadiaola的博客 2159

EMC基础知识总结

电磁干扰(Electromagnetic Interference),简称EMI,有和两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个电网络或电子设备。

学海无涯的专栏 1363

Redis十大数据类型

移动互联网时代LBS应用越来越多,交友软件中附近的小姐姐、外卖软件中附近的美食店铺、高德地图附近的核酸检查点等等,那这种附近各种形形色色的XXX地址位置选择是如何实现的?地球上的地理位置是使用二维的经纬度表示,经度范围(-180,180],纬度范围(-90,90],只要我们确定一个点的经纬度就可以取得他在地球的位置。例如滴滴打车,最直观的操作就是实时记录更新各个车的位置,然后当我们要找车时,在数据库中查找距离我们(坐标x0,y0)附近r公里范围内部的车辆但是这样会有什么问题呢?

分享思想,留下痕迹。 1946

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Redis的数据类型介绍

​ 【1】键不能重复​ 【2】作用:标识存储的数据​ 【3】数据类型:string​ 【4】命名规则:​ 1)不能太长:因为查询的效率低,查询起来不方便​ 2)不能太短:容易重复,同时可读性也差​ 3)按照规范:HEIMA_STU_LIST**值(value):**支持5种数据类型值的数据类型值的格式说明string字符串类型,类似于Java中Stringhash由键值对组成,类似于Java中Maplist列表类型,类似于Java中List,元素是存取有序,可以重复。

几许的博客 2482

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Redis 系列之数据类型

Redis(Remote Dictionary Server)是一个开源的高性能键值数据库。与传统的关系型数据库不同,Redis的数据存储是基于内存的,因此在读取和写入数据时具有极高的速度。Redis支持多种数据类型,使其在不同的应用场景中都能发挥出色的性能。

MichaelZ的博客 2759

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Redis十大数据类型详解

string是redis最基本的类型,一个key对应一个valuestring类型是,意思是一个redis中字符串value最多可以是512M。

2402_88002981的博客 3349

什么是redis服务+redis服务数据类型有哪些??

什么是redis服务+redis服务数据类型有哪些??

jiang0615csdn的博客 2195

Redis7 数据类型

Redis7 数据类型,包括Redis键(Key),Redis字符串(String),Redis列表(List),map等

2301_77207909的博客 2001

Redis的9种数据类型

在具体描述这几种数据类型之前,我们先通过一张图了解下 Redis 内部内存管理中是如何描述这些不同数据类型的: 首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表valu...

hudeyong926的专栏 2万+

【Redis】Redis 底层数据结构、五种数据类型

当我们执行命令setbit key 7 0的时候,相当于把字符0x33变成了0x32,这样字符串的值就变成了”22”。而value则比较复杂,为了在同⼀个dict内能够存储不同类型的value,这就需要⼀个通⽤的数据结构,这个通用的数据结构就是robj,全名是redisObject。String的内部存储结构⼀般是sds(Simple Dynamic String,可以动态扩展内存),但是如果⼀个String类型的value的值是数字,那么Redis内部会把它转成long类型来存储,从⽽减少内存的使用。

奶酪的博客 3240

【 Redis五大数据类型实现原理】

键不同,值相同。

2401_86968712的博客 2543

Redis的常用数据类型以及命令

自用

jiabao0520的博客 3380
上一篇: 非关系型数据库Redis简介、常用命令与优化
下一篇: (error) NOAUTH Authentication required.
时代广场的蟋蟀
博客等级 码龄6年 174粉丝 119原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值