大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop

HDFS

MapReduce

Hive

Flume

Sqoop

Zookeeper

HBase

Redis (正在更新)

章节内容

上一节我们完成了:


Redis 源码下载

Redis 编译、安装

Redis 配置修改

Redis 服务启动

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个大数据的学习环境,供我学习。

之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。


2C4G 编号 h121

2C4G 编号 h122

2C2G 编号 h123

string 类型

常见操作

应用场景

  • key和value是字符串
  • 普通的赋值
  • incr 用于乐观锁(incr递增数字)
  • setnx 用于分布式锁(当value不存在时赋值)

比如使用 setnx:

root@h121:/usr/redis/bin# ./redis-cli

127.0.0.1:6379> setnx name wzk # 设置值
(integer) 1
127.0.0.1:6379> setnx name wzk-2 # 值存在则无法设置
(integer) 0
127.0.0.1:6379> get name # 还是刚才的
"wzk"
127.0.0.1:6379> 

执行结果如下图:

list类型

list列表可以存储有序、可重复的元素,获取头部或者尾部附近的记录是最快的。

常见操作

表1

表2

应用场景

可以作为栈或者队列使用,列表有序。

可以用做各种表:比如用户表、商品表等:

127.0.0.1:6379> lpush list 1 2 3 9 4 5 # 生成列表
(integer) 6
127.0.0.1:6379> lrange list 1 10 # 遍历列表
1) "4"
2) "9"
3) "3"
4) "2"
5) "1"

127.0.0.1:6379> lpop list # 从左边取一个
"5"
127.0.0.1:6379> lpop list
"4"
127.0.0.1:6379> lpop list
"9"
127.0.0.1:6379> 

set 类型

Set:无序、唯一

常见操作

应用场景

适用于不能够重复且不需要顺序的场景

比如:关注的用户列表,进行随机抽奖

127.0.0.1:6379> sadd set:1 a b c d e f g # 写入set
(integer) 7
127.0.0.1:6379> smembers set:1 # 查看set中的值
1) "c"
2) "b"
3) "d"
4) "f"
5) "a"
6) "g"
7) "e"
127.0.0.1:6379> srandmember set:1 # 随机一个set中的值
"d"
127.0.0.1:6379> srandmember set:1
"e"
127.0.0.1:6379> srandmember set:1
"b"
127.0.0.1:6379> srandmember set:1
"e"
127.0.0.1:6379> srandmember set:1
"f"
127.0.0.1:6379> 

sortedset (zset)类型

SortedSet(ZSet)有序集合:元素本身是无序不重复的,每个元素关联一个分数,可按分数排序,分数可重复。

常见操作

表1

表2

应用场景

可以按照分数值排序,适用于各种排行榜。

比如:点击排行榜、销量排行榜、关注排行榜等等

127.0.0.1:6379> zadd hit 100 item1 20 item2 30 item3 # zset
(integer) 3
127.0.0.1:6379> zcard hit
(integer) 3
127.0.0.1:6379> zscore hit item3 
"30"
127.0.0.1:6379> zrevrange hit 0 -1 # 遍历zset
1) "item1"
2) "item3"
3) "item2"
127.0.0.1:6379> 

hash类型

Redis Hash 是一个 string 类型的 field 和 value 的映射表,它提供字段和字段值的映射。

常见操作

应用场景

对象的存储,表数据的映射

127.0.0.1:6379> hmset user01 name wzk age 18 password 123 # hash对象
OK
127.0.0.1:6379> hgetall user01 # 取出对象中的内容
1) "name"
2) "wzk"
3) "age"
4) "18"
5) "password"
6) "123"
127.0.0.1:6379> hget user01 name # 获取对象的名字
"wzk"
127.0.0.1:6379> 


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
存储 NoSQL 关系型数据库
Redis 集合(Set)
10月更文挑战第17天
38 5
|
1月前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
2月前
|
NoSQL 关系型数据库 MySQL
Redis 列表(List)
10月更文挑战第16天
26 2
|
2月前
|
消息中间件 存储 监控
redis 的List类型 实现 排行榜
【10月更文挑战第8天】
39 2
|
6月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
978 1
|
5月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
5月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
6月前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
171 3
|
5月前
|
存储 Java 索引
Java List接口实现原理与性能评估
Java List接口实现原理与性能评估