redis初步认识(二)

文章目录

概述

这篇写下剩下的2个基本数据结构(set, zset)。

Set

简介

集合,为了描述它的特征,这个是无序集合;集合的特征是唯一,集合中的元素唯一存在。

基础命令

bash 复制代码
# 添加一个或多个指定的member元素到集合的 key中
SADD key member [member ...]
 # 计算集合元素个数
SCARD key       
# SMEMBERS key
 SMEMBERS key        
# 返回成员 member 是否是存储的集合 key的成员
SISMEMBER key member
 # 随机返回key集合中的一个或者多个元素,不删除这些元素
SRANDMEMBER key [count]
 # 从存储在key的集合中移除并返回一个或多个随机元素
SPOP key [count]
 # 返回一个集合与给定集合的差集的元素
SDIFF key [key ...]
 # 返回指定所有的集合的成员的交集
SINTER key [key ...]
 # 返回给定的多个集合的并集中的所有成员
SUNION key [key ...]

大概吧,有这么几个,还是一样的思路,可以去官网的地方查查看。这些命令。

存储结构

元素都为整数且节点数量少时,使用整数数组存储;否则使用字典存储;

应用

这种应用挺多的,聊一个吧,比如稍微熟悉点的,朋友圈2个好友共同关注。

bash 复制代码
sadd follow:A a b c d e
sadd follow:C a b c
sinter follow:A follow:C

ZSET

上边的是无序集合,接下来写写有序集合的。zset。
有序集合:它的特征是有序唯一的集合;通常用来实现排行榜。

基础命令

bash 复制代码
# 添加到键为key有序集合(sorted set)里面
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 
# 从键为key有序集合中删除 member 的键值对
ZREM key member [member ...] 
# 返回有序集key中,成员member的score值
ZSCORE key member 
# 为有序集key的成员member的score值加上增量increment
 ZINCRBY key increment member
 # 返回key的有序集元素个数
ZCARD key 
# 返回有序集key中成员member的排名
ZRANK key member 
# 返回存储在有序集合key中的指定范围的元素   order by id limit 1,100
 ZRANGE key start stop [WITHSCORES] 
# 返回有序集合key中,分数在min和max之间的所有元素(且包含min和max); limit 指定从第几个开始返回多少个元素
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

注意:有序集合比较规则,先通过比较 score 来确定排序,如果 score 相同则比较 member;
member 比较规则是按照字母顺序来进行比较;

存储结构

节点数量少且字符串长度小时使用压缩列表存储;否则使用跳表来进行存储;

小结

好了,这篇就写这么多吧,主要是写了set和zset这两种数据结构的使用。有兴趣,可以一起来学习学习。下一篇,再写点不一样的内容。

相关推荐
热爱编程的小曾28 分钟前
sqli-labs靶场 less 8
前端·数据库·less
THRUSTER1111136 分钟前
MySQL-- 函数(单行函数):数值函数, 字符串函数
数据库·mysql·函数·navicat·单行函数
橙序研工坊43 分钟前
MySQL的进阶语法7(索引-B+Tree 、Hash、聚集索引 、二级索引(回表查询)、索引的使用及设计原则
数据库·sql·mysql
Bruce-li__44 分钟前
深入理解Python asyncio:从入门到实战,掌握异步编程精髓
网络·数据库·python
小光学长1 小时前
基于vue框架的智能服务旅游管理系统54kd3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
Bonnie_12151 小时前
07-MySQL-事务的隔离级别以及底层原理
数据库·mysql
ETLCloud数据集成社区1 小时前
ETLCloud是如何通过Oracle实现CDC的?
数据库·oracle·etl·实时数据同步
KATA~2 小时前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
xyliiiiiL2 小时前
一文总结常见项目排查
java·服务器·数据库
shaoing2 小时前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库