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#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

Redis中的常用的五种数据类型详解

《Redis中的常用的五种数据类型详解》:本文主要介绍Redis中的常用的五种数据类型详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis常用的五种数据类型一、字符串(String)简介常用命令应用场景二、哈希(Hash)简介常用命令应用场景三、列表(L

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L

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