redis的数据类型

2023-09-13 22:45:15

fb5acd3529164b31b2b1088de697413c.jpgredis 数据类型

 

redis的五种数据类型是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sort set (有序集合)。其中,string(字符串)是redis中最基本的数据类型,一个key对应一个value,string 可以包含任何数据

 

字符串string

字符串是所有编程语言中最常见和最常用的数据类型,而且也是redis最基本的数据类型之一,而且redis中所有key的类型都是字符串,它是一个由字节组成的序列,在Rediss中是二进制安全的。这意味着该类型可以接受任何格式数据,如JPEG图像数据和Json对象说明信息。它是标准的key-value,通常用于存储字符串、整数和浮点。Value可容纳高达512MB的数据

 

添加一个key

image

 

//设置一个key value

set name liwenchao

 

//设置一个3秒的key,value, 3秒后查询就为nil

set name2 lili ex 3

获取一个key的内容

//可以重复多次定义一个key

set name liwenchao

//如上面演示内容

get name

删除一个key

image

 

//删除name=liwenchao这个key

del name

批量设置多个key,value

image

 

//mset key1 value1 key2 value2

mset name1 liwenchao name2 gaolili

批量根据key获取多个value

image

 

//mget key1 key2

mget name1 name2

追加数据

image

 

//append key1 appendvalue

append name1 app

数值递增

image

 

//设置一个key,value为int的值

set num 10

//让num的value自动+1

incr num

数值递减

image

 

//让num的value自动-1

decr num

获取字符串key的长度

image

 

//获取key为name1的value的长度

strlen name1

判断key是否存在

image

 

//有会返回1,没有会返回0

exists name1

查看key的过期时间

image

 

//ttl 查看key的剩余生存时间

// -1为永不过期,

// -2没有这个key

// num key的剩余有效时间

 

重新设置key的过期时间

image

 

expire name3 120

取消key的过期时间变为永久

image

 

persist name3

列表list

列表是一个双向可读可写的管道,其头部是左侧,尾部是右侧,一个列表可以最多包含2^32-1个元素,即4294967295个元素

 

生成列表并插入数据

image

 

//创建list1的列表并插入value1,value2,value3,value3在列表的最左侧

lpush list1 value1 value2 value3

获取列表长度

llen list

向列表追加数据

//从左边追加

lpush list1 name1

//从右边追加

rpush list1 name2 

获取列表指定范围数据

image

 

//name4在最左边,序列号为0 ,name3序列号为1

lrange list2 1 2

 

//如果只有4个元素。0-99可以打印所有的

lrange list2 0 99

移除左右一个元素

image

 

//从列表右边删除第一个

rpop list2

//从列表左边删除第一个

lpop list2

集合set

set是string类型的无序集合,集合中的成员是唯一的,这就意味着集合中不能出现重复的数据,可以在两个不同的集合中对数据进行比对并取值

 

生成集合key

image

 

//生成无序集合set1

sadd set1 v2 v5

追加数据

image

 

//可以看到加入相同数据时,返回为0,表示没变化

sadd set1 v2

查看集合所有数据

image

 

//获取无序集合set1的所有数据

smembers set1

获取集合的差集,交集,并集

//差集,set1有而set2没有的

sdiff set1 set2

 

//交集,set1有,set2也有的

sinter set1 set2

 

//并集,set1和set2元素的集合并去重

sunion set1 set2 

有序集合

redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double双精度浮点数类型的分数,redis正是通过该分数来为集合中的成员进行从小到大的排序,有序集合成员是唯一的,但分数却可以重复,集合是通过hash表实现的,所以添加,删除,查找的复杂度是O(1),集合中最大的成员数是2^32-1,每个集合可以存储40多亿成员

 

生成有序集合

//生成有序集合zset1 

zadd zset1 1 v1

 

//获取类型

type zset1

 

//一次添加多个元素

zadd zset2 1 v1 2 v2 3 v3

集合排行

image

 

//显示所有key,value

zrevrange zset2 0 -1 withscores

 

//显示集合zset2内所有的key

zrange zset2 0 -1

获取集合长度

zcard zset1

基于索引返回数值

//id号从1到3的

zrange zset1 1 3

返回某个数值的索引

zrank zset2 v2

哈希hash

hash是一个string类型的feild和value的映射表,hash特别是和用于存储对象,redis中每个hash可以存储40多亿键值对

 

生成hash key

//设置一个键值对,我这里设置两个的时候报错了,按理说不应该报错的,待观察

hset hash1 name liwenchao

 

type hash1

获取hash key字段值

//获取key为name的键值对的值

hget hash1 name

删除一个hash key的字段

hdel hash1 name

获取所有hash表中的key

hkeys hash1

获取指定hash的所有key,value

hgetall hash1

更多推荐

华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

文章目录Part.IIntroductionChap.I云耀云服务器L实例简介Chap.II参与活动步骤Part.II配置Chap.I初步配置Chap.II配置安全组Part.III简单使用Chap.IVScode远程连接华为云Chap.II简单绘图ReferencePart.IIntroduction本篇博文是为了参

Python —— 类和对象

1、类1、认识类1、定义类:class类名(遵循驼峰命名),类可以从字面意思上了解,就是一类事物的统称,植物、水果、大海、大山等,都是一类事物,例如:classCar:定义一个车类;classFruit:定义一个水果类2、类的特性:1、类中会定义这个类共有的特点和状态,可以理解为这类事物的属性和方法2、类可以调用自己的

Linux下安装和使用MySQL的详细教程

✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。🍎个人主页:JavaFans的博客🍊个人信条:不迁怒,不贰过。小知识,大智慧。💞当前专栏:MySQL数据库学习之旅✨特色专栏:国学周更-心性养成之路🥭本文内容:Linux下安装和使用MySQL的详细教程文章目录Linux下My

Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

git的ssh配置HTTPS和SSH的区别设置SSH方式配置单个仓库配置账户公钥大家通过git拉取代码的时候,一般都是通过http的方式,简单方便。但是细心的童鞋肯定也注意到Git也是支持ssh方式的。可能很多人也试过使用这个方式,但是好像没有那么简单。那么什么是SSH呢?为啥要使用SSH方式呢?HTTPS和SSH的区

C++ 多线程

多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下两种类型的多任务处理:基于进程和基于线程:基于进程的多任务处理是程序的并发执行。基于线程的多任务处理是同一程序的片段的并发执行。多线程程序包含可以同时运行的两个或多个部分,这样的程序中的每个部分称为一个线程,每个线程定义了一个

c++多态

目录多态的概念多态实现计算器案例c++如何实现动态绑定纯虚函数和抽象类纯虚函数和多继承虚析构函数虚析构函数作用纯虚析构函数重载重定义重写多态的概念多态:一种接口,多种形态静态多态:如果函数的调用,在编译阶段就可以确定函数的调用地址,并产生代码,就是静态多态(编译时多态)动态多态:调用地址不能编译不能在编译期间确定,而需

电脑摄像头录像软件推荐,总有一款适合你!

“有没有好用的电脑摄像头录像软件推荐呀,最近因为工作原因,需要用到电脑摄像头录像,但是因为不会操作,导致进度一直跟不上,想问问大家,帮忙推荐一款好用的电脑摄像头录像软件!”电脑摄像头是我们在日常工作和娱乐中不可或缺的工具,它可以用于视频通话、拍摄照片和录制视频等多种用途。然而,很多人对于如何使用电脑摄像头进行录像并不是

【HTTP】Cookie 和 Session 详解

Cookie和Session一.Cookie1.什么是Cookie2.Cookie的作用3.Cookie的组成4.Cookie的组织形式5.Cookie的传输6.如何提高Cookie的安全性7.Cookie类二.Session1.理解会话机制(Session)2.Sessoin的组织形式3.HttpSession类三.

单例模式-饿汉模式、懒汉模式

单例模式,是设计模式的一种。在计算机这个圈子中,大佬们针对一些典型的场景,给出了一些典型的解决方案。目录单例模式饿汉模式懒汉模式线程安全单例模式单例模式又可以理解为是单个实例(对象)在有些场景中,有特定的类,只能创建出一个实例,不应该创建多个实例。使用了单例模式以后,此时想要创建多个实例就变得很困难~Java中的单例模

算法通过村第八关-树(深度优先)青铜笔记|经典算法题目

文章目录前言1.二叉树里面的双指针1.1判断两棵树是否相同1.2对称二叉树1.3合并二叉树2.路径专题2.1二叉树的所有路径2.2路径总和3.翻转的妙用总结前言提示:人类的底里是悲伤,我们都在用厚重的颜料,覆盖那些粗糙的线稿。--张皓宸《抬头看二十九次月亮》前面的练习才是开始,这理才是真正的进入算法的门槛,来迎接下一波

ELK 企业级日志分析系统

----------------------ELK概述----------------------------------------1、ELK简介ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求

热文推荐