redis5种数据类型的底层数据结构

2024-02-07 09:58

本文主要是介绍redis5种数据类型的底层数据结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

redis的五种数据类型

redis客户端建立

./redis-cli -h 192.168.1.22 -p 6380 --raw

1.String

image

应用场景:

统计网站访问数量、当前在线人数、微博数、粉丝数等,全局递增ID等 。

常用命令:

SET key value

GET key

MSET key1 value1 [key2 value2]

MGET key1 key2

INCR key

DECR key

SETNX key value  #只有key 不存在时,才设置key的值

2.Hash

image

应用场景

保存用户的详细信息。用ID作为key,value则用一组field-value的形式保存。

常用命令 (H)

HSET key field value

HGET key field

HGETALL key

HMSET key field1 value1 [field2 value2]

HMGET key field1 [filed2]

3.List

image

应用场景

获取最新的评论列表,获取最后登录10个用户,获取最近7天的活跃用户数等。

常用命令(L/R)

LPUSH key value1 [value2]  #将一个或多个值插入到列表头部

LPOP key #移出并获取列表的第一个元素

RPUSH key value1 [value2] #在列表尾部添加一个或多个值

RPOP key #移除并获取列表最后一个元素

LREM key count value #移除列表元素

LRANGE key start stop #获取列表指定范围内的元素

4.Set

image

image

应用场景

a.利用唯一性,可以存取当天的活跃用户列表。

b.利用集合操作,可以取不同兴趣圈子的交集,可以取当天的新增用户等。

常用命令(S)

SADD key member1 [member2] #向集合添加一个或多个成员

SDIFF key1 [key2] #返回给定所有集合的差集

SINTER key1 [key2] #返回给定所有集合的交集

SUNION key1 [key2] #返回所有给定集合的并集

SISMEMBER key member    #判断 member 元素是否是集合 key 的成员

SMEMBERS key    #返回集合中的所有成员

SREM key member1 [member2]   # 移除集合中一个或多个成员

5.Sorted Set

image

image

应用场景

销量排名,积分排名,时间线等

常用命令

ZADD key score1 member1 [score2 member2]    #向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZINCRBY key increment member    #有序集合中对指定成员的分数加上增量 increment
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]    #通过分数范围返回有序集合指定区间内的成员
ZINTERSTORE destination numkeys key [key …]    #计算给定的一个或多个有序集的交集,并将结果集存储在新的有序集合 key 中
ZUNIONSTORE destination numkeys key [key …]    #计算给定的一个或多个有序集的并集,并存储在新的 key 中

Redis5中数据结构底层数据结构

 

这篇关于redis5种数据类型的底层数据结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687353

相关文章

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

通过C#获取Excel单元格的数据类型的方法详解

《通过C#获取Excel单元格的数据类型的方法详解》在处理Excel文件时,了解单元格的数据类型有助于我们正确地解析和处理数据,本文将详细介绍如何使用FreeSpire.XLS来获取Excel单元格的... 目录引言环境配置6种常见数据类型C# 读取单元格数据类型引言在处理 Excel 文件时,了解单元格