Redis五种基本数据类型
五种基本数据类型
redis无论什么数据类型,在数据库中都是以key-value形式保存,并且所有的key(键)都是字符串,所以讨论基础数据结构都是讨论的value值的数据类型
主要包括常见的5种数据类型,分别是:String、List、Set、Zset、Hash。
结构类型 | 结构存储的值 | 结构的读写能力 |
---|---|---|
String字符串 | 可以是字符串、整数或浮点数 | 对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作; |
List列表 | 一个链表,链表上的每个节点都包含一个字符串 | 对链表的两端进行push和pop操作,读取单个或多个元素;根据值查找或删除元素; |
Set集合 | 包含字符串的无序集合 | 字符串的集合,包含基础的方法有看是否存在添加、获取、删除;还包含计算交集、并集、差集等 |
Hash散列 | 包含键值对的无序散列表 | 包含方法有添加、获取、删除单个元素 |
Zset有序集合 | 和散列一样,用于存储键值对 | 字符串成员与浮点数分数之间的有序映射;元素的排列顺序由分数的大小决定;包含方法有添加、获取、删除单个元素以及根据分值范围或成员来获取元素 |
String字符串
简介
String是redis最基本的类型,一个key对应一个value。
- String类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
- String类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M
命令
基本操作
set (key) (value)
:设置键值对setnx (key) (value)
:防止覆盖,设置键值对,- 如果key不存在就设置,返回1
- 如果key已经存在就不设置,返回0
get(key)
:获取key对应的valuegetset (key) (value)
:先get再set,返回旧值,如果没有旧值返回nilappend (key) (value)
:向指定的key的value后追加字符串del (key)
:删除keystrlen (key)
:获取key对应值的字符串长度
数字value的加减
incr (key)
:value + 1decr (key)
:value - 1incrby (key) (number)
:value + numberdecrby (key) (number)
:value - number
获取或者设置指定范围内的值
getrange (key) (begin) (end)
:获取[begin,end]下标范围内的值,如果是(0,1)就是获取所有值setrange (key) (begin) (xxxx)
:从begin下标开始设置xxx值,将原有的替换掉
设置键值过期时间
setex (key) (seconds) expire
:设置键过期时间ttl (key)
:查看key剩余存活时间
同时设置或获取多个key-value
met (key1) (value1) (key2) (value2)
:用于同时设置一个或多个 key-value 对mget (key1) (key2)
:返回所有(一个或多个)给定 key 的值(如果某个key不存在,不存在的key返回null)msetnx(key1) (value1) (key2) (value2)
:当所有 key 都成功设置,返回 1 。 如果有一个key设置失败,所有的key设置都会失败,返回 0 。原子操作
使用场景
实战场景
- 缓存: 经典使用场景,把常用信息,字符串,图片或者视频等信息放到redis中,redis作为缓存层,mysql做持久化层,降低mysql的读写压力
- 计数器:redis是单线程模型,一个命令执行完才会执行下一个,同时数据可以一步落地到其他的数据源。
- session:常见方案spring session + redis实现session共享,
编码与底层结构
字符串是Redis最基本的数据类型,不仅所有key都是字符串类型,其它几种数据类型构成的元素也是字符串。注意字符串的长度不能超过512M。
编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hYsLFl0o-1651558697727)(Redis.assets/image-20220106194438014.png)]
字符串对象的编码可以是int
,raw
或者embstr
。
int 编码
:保存的是可以用 long 类型表示的整数值embstr 编码
:保存长度小于44字节的短字符串(redis3.2版本之前是39字节,之后是44字节)
- 对其进行修改后变成raw编码,无论是否达到44字节
raw 编码
:保存长度大于44字节的长字符串(redis3.2版本之前是39字节,之后是44字节)
内存布局
字符串对象支持三种编码方式: RAW, INT, EMBSTR, 三种方式的内存布局分别如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SBpOnVpM-1651558697728)(https://pdai-1257820000.cos.ap-beijing.myqcloud.com/pdai.tech/public/_images/db/redis/db-redis-ds-x-21.png)]
Redis五种基本数据类型相关推荐
- Redis五种基本数据类型底层详解(原理篇)
Redis五种基本数据类型底层详解 详细介绍Redis用到的数据结构 简单动态字符串 SDS和C字符串的区别 总结 链表 字典 哈希表 字典 哈希算法 解决键冲突 rehash(重点) 渐进式reha ...
- Redis五种基本数据类型(超级详细)
目录 前言 一.String类型常见命令 二.Hash类型的常见命令 三.List类型的常见命令 四.Set类型常见命令 五.SortedSet类型常见命令 前言 提示:Redis五种基本数据类型(超 ...
- 深入浅出Redis五种基本数据类型
文章目录 1.String SDS(Simple Dynamic String) 2.RedisDB设计 3.List 4.Hash 5.Set intset 6.ZSet skiplist 1.St ...
- redis五种数据类型的应用场景_Redis五种不同的数据类型
一.redis集群测试环境搭建 参考文章:https://www.jianshu.com/p/0a2f8f80983a redis-cli -c -h 10.96.87.129 -p 7001注意:- ...
- redis种类型对应java类型_Redis的五种基本数据类型介绍
Redis作为缓存具有极其丰富的功能,比如计数器.好友关系以及排行榜等等.而Redis之所能够实现如此强大的功能,完全是依赖着它的基本数据结构.今天我们来看看Redis的五种基本的数据结构,分别是字符 ...
- Redis五种数据类型及应用场景
Redis五种数据类型及应用场景 MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样 ...
- Redis五种数据类型介绍
概述 Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合.本文详细介绍这五种数据类型的使用方法.本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方 ...
- redis五种数据类型的使用场景
string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...
- Redis五种数据类型及命令(一)
Redis 五种数据类型详解及命令 Redis五种数据类型分别为: String:最基本的字符串类型. list:列表(如果对比java来看,这个list不是ArrayList,而是LinkedLis ...
最新文章
- Python 快速生成 web 动态展示机器学习项目!
- 香奈儿的 AI 实验室里,发生了什么?
- P2888 [USACO07NOV]牛栏Cow Hurdles(Floyd算法)
- PHP 语言结构(Language constructs)和函数的区别
- css清除浮动方法总结
- QPixmap QImage 相互转化
- Go 语言实现 23 种设计模式(修饰器)
- 周末之个人杂想(四)
- 小米线刷一直显示flashing_小米空调质量怎么样 小米空调一晚上多少电 看完这篇你就有数了...
- Java-虚拟机-局部变量表
- 液晶显示屏怎么显示泰文_上海工业液晶显示屏厂家
- [Remoting]在.NET環境實作Flex 3 Remoting - (2) Flex Builder 環境設定
- 6.字符串截取数据求平均分
- 高等数学-用等价无穷小求极限题集
- Machine learning approximation algorithmsfor high-dimensional fully nonlinear PDE
- 职业教育相关的核心期刊有哪些?
- AXD 查看register笔记
- 无所不能,传感器黑科技层出不穷
- 简单的了解一下MySQL连接查询
- 学习EBS建议有的知识
热门文章
- 取消了移动WAP无限流量
- C. Colorful Bricks(dp)
- Shader入门---曲面细分着色器和几何着色器
- “大数据时代下的地理信息可视化:ECharts地图和数据面板实践“
- 第78句 2020年地球日:霍金留给世界的遗言比以往任何时候都更有意义
- 29 获取ApplicationContext
- 自定义Dialog使用场景
- ORB(Oriented FAST and Rotated BRIEF) 特征点
- 如何用Python创建微信机器人?你知道吗
- 职场上个人的核心技术_职场上千万要对这三个人做背景调查,否则就会出大事 !...