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这两种数据结构的使用。有兴趣,可以一起来学习学习。下一篇,再写点不一样的内容。

相关推荐
若兰幽竹1 小时前
【从零开始编写数据库:基于Python语言实现数据库ToyDB的ACID特性】
数据库·python
宇钶宇夕1 小时前
S7-200 SMART CPU 密码清除全指南:从已知密码到忘记密码的解决方法
运维·服务器·数据库·程序人生·自动化
周杰伦的稻香1 小时前
MySQL密码管理器“mysql_config_editor“
数据库·mysql
云朵大王1 小时前
SQL 视图与事务知识点详解及练习题
java·大数据·数据库
Aikes9021 小时前
基于redis的分布式session共享管理之销毁事件不生效问题
redis·分布式·缓存
czhc11400756632 小时前
LINUX712 MYSQL;磁盘分区;NFS
数据库·mysql·adb
不太可爱的大白2 小时前
Mysql:分库分表
数据库·mysql
十五年专注C++开发3 小时前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
bianguanyue4 小时前
SQLite密码修改故障排查:RSA加密随机性导致的数据库匹配问题
数据库·sqlite·c#
亚马逊云开发者4 小时前
将 Go 应用从 x86 平台迁移至 Amazon Graviton:场景剖析与最佳实践
linux·数据库·golang