Redis五种数据结构原理及应用场景

本文详细介绍了Redis中的五种数据结构:String、List、Hash、Set和SortedSet,包括它们的介绍、常用命令、应用场景、原理及注意事项。String是动态字符串,适用于存储键值对;List基于双向链表,适用于消息队列;Hash是键值映射表,适用于存储对象;Set是无序不重复元素集合;SortedSet是有序集合,根据分数排序。文章还提及了跳跃表和压缩表的概念。
摘要由CSDN通过智能技术生成

前言

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件; 下面就了解的应用场景及其原理做个总结:

String类型

介绍

存储字符串类型的key-value

常用命令及应用场景

常见命令 命令介绍 应用场景
set/get/setex 存储字符串类型的key-value 验证码、幂等性(重复提交判断)、token令牌、 序列化json对象存储 set user:captcha:zhangsan 123456 ex 30/setex user:captcha:zhangsan 30 123456 (张三收到验证码为123456,30s后失效),set user:zhangsan 用户信息json串(用户张三的个人信息)
mset/mget 批量设置key-value 同set/get mset user:name zhangsan user:age 20 (用户姓名为张三,年龄20)
incr 对key对应的值进行加1操作,并返回新值 统计、计数器、发号器 incr article:123:reading(对id为123的文章阅读量增加1)
incrby 对key对应的值进行加increment操作,并返回新值 同incr incr article:123:reading 10(对id为123的文章阅读量增加10)
setnx key如果存在则返回0,不存在则返回1 分布式锁 setnx addr 123(设置地址为123)
getset 设置key的值,并返回key的旧值 状态变更(比如用户下单,可以修改下单状态) getset addr 567(注意:返回为旧值123)

原理

Redis的字符串是动态字符串,是可以修改的字符串,它的内部表示就是一个字符数组,内部结构的实现类似于Java的ArrayList,它的内部结构是一个带长度信息的字节数组

注意

  • 值的长度不能超过512MB
  • key的命名规范,不要过长,冒号分割, 业务名:表名:ID

List

介绍

  • 字符串列表,按照插入顺序排序

常用命令及应用场景

常见命令 命令介绍 应用场景
lpush/rpush
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昨日晨曦丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值