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

前言

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、付费专栏及课程。

余额充值