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

相关文章

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

哈希表的底层实现(1)---C++版

目录 哈希表的基本原理 哈希表的优点 哈希表的缺点 应用场景 闭散列法 开散列法 开放定值法Open Addressing——线性探测的模拟实现 超大重点部分评析 链地址法Separate Chaining——哈希桶的模拟实现 哈希表(Hash Table)是一种数据结构,它通过将键(Key)映射到值(Value)的方式来实现快速的数据存储与查找。哈希表的核心概念是哈希

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。