redis-数据类型

十大数据类型

学习

redis 操作手册

英文

Commands

中文

Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)

学习方法

举出一个数据结构的应用场景(理解数据结构特点 ),并操作(练习api

键值的操作命令

scan 如何使用

命令不区分大小写,key 区分大小写

帮助,help @类型

string

最大长度 512MB

下面是具体讲解相当于字符串截取

节点在操作锁资源的时候,setnx lock uuid,操作完毕 del lock

list

双端链表实现

lpush list1 0 1 2 3 4 5

lrange list1 0 -1 -> 5 4 3 2 1 0 注意这个顺序关系

lrem 删除n个值为xx的元素

rpoplpush

lset 把指定索引的值更新为新值

应用场景-》某个用户关注的所有up

队列,先进先出,很方便的做分页查询

hash

哈希表实现

应用场景:购物车

key->购物车前缀+用户id value->商品id:数量

shell 复制代码
# 增加商品
# 用户id: uid001 分别添加 商品id 10025 10065 的两件商品
hset cart:uid001 10025 1
hset cart:uid001 10065 1
# 全选功能
HGETALL cart:uid001
#1) "10025"
#2) "1"
#3) "10065"
#4) "1"
# 查看商品数量
hlen cart:uid001
# 增加(减少hdecrby)商品
hincrby cart:uid001 10025 1
# 删除某个商品
hdel cart:uid001 10065

set

哈希表实现,支持快速查找和去重

社交关系求并集和差集

zset

有元素权重的 set,跳表实现,快速的范围查询,排行榜

bitmap

存储的数据结构

统计占有字节数,strlen 是八位一扩容,联想 java 集合底层实现

bitcount 全部键里面含有1的有多少个

  1. 为什么这里要使用一个映射表:

有一个自增id,节省空间,bitmap 索引是从1开始的

  1. 这里的 bitop 你能说说自己的理解吗

可以理解为两个bit串对应位做与操作

另外一个统计签到的案例

这里的key使用的是用户id,然后偏移量表示天数,value和之前一致,便于统计某个用户累计签到(与之前统计系统某一段时间用户签到量做对比)

估算内存占用

HyperLogLog

一种只需要占用很小的内存就能计算很多元素集合的基数的数据结构

  • 统计某个网页的UV、某个文章的UV
    • UV Unique Visitor 独立访客,一般理解为客户端IP,需要去重
  • 用户搜索网站关键词数量
  • 统计用户每天搜索不同词条个数

统计 uv 实现

GEO

底层是 zset

两个距离之间的距离

处理乱码,使用 redis-cli --raw 连接

Stream

注意这里的消息id是递增的

bitfield

没啥人用略过

相关推荐
Vect__7 分钟前
MySQL 数据类型和约束:从字段设计到表结构建模
数据库·mysql
张人玉12 分钟前
C# WinForms——工厂管理系统(C# WinForms)
数据库·sqlite·c#·winform
AC赳赳老秦1 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw
后端优选官2 小时前
上海Agent开发公司:企业级智能体软件的技术架构与落地评估
数据库·人工智能·架构·软件开发·开发经验·上海
JustNow_Man2 小时前
`openspec/config.yaml` 解析与生效机制
数据库
Databend2 小时前
用 QUALIFY 写出更清晰的窗口函数 SQL
数据库·sql·数据分析
数智化管理手记2 小时前
应收应付资金占用过高怎么办?应收应付搭配账龄分析怎么做
大数据·网络·数据库·人工智能·数据挖掘
用户71333585156242 小时前
MySQL - EXPLAIN 执行计划
数据库
YDS8292 小时前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
这就是佬们吗2 小时前
Python入门③-运算符、条件与循环
开发语言·数据库·vscode·python·pycharm·编辑器