ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis主要数据结构以及应用场景

2022-08-29 01:00:09  阅读:223  来源: 互联网

标签:存储 场景 increment Redis value 键值 user key 数据结构


String

最常用的各式,以k v格式进行存储
常用的场景在于对象json存储,以及对象缓存、分布式锁、计数器等。
SET KEY VALUE 存入字符串的键值对
MSET key value [key value ...]批量存储字符串键值对
SETNX key value 存入一个不存在的键值对,如果key已存在则无效。插入成功返回1,失败返回0 可以用于分布式锁。
GET key 根据key获取字符串value
MGET key 批量获取字符串
EXPIRE key seconds设置key的过期时间。
INCR key 值自增 + 1
DECR key 值自增 - 1
INCRBY key increment 值 + increment
DECRBY key decrement 值 - increment

直接单值缓存适合存储哪些不经常修改的对象,如果频繁修改则不适用,每次修改都会要重写写redis一遍,效率有点不好。
如果存储频繁修改的对象可以使用以下这种方式进行存储,这种方式可以可以灵活的对对象中的属性进行修改操作,但是如果key多了也不建议使用这种方式存储对象。
MSET user:1:name lyra user:1:balance 1888
MGET user:1:name user:1:balance

分布式锁,使用SETNX命令,如果拿到锁了返回1,如果没拿到锁返回0,执行完毕后删除该key,即可。之后避免程序中断未是否锁可以给key添加个过期时间。
点赞和session贡献也可以在这种场景下进行使用。

给分布式系统生成全局唯一的id
在分库分表场景下,可以在redis中记录每次生成的id是多少,下次去的时候 + 1即可,但是每次取一个,频繁取可以造成阻塞,可以批量取一批id存储到Java List之类的集合中,然后再进行设置。

标签:存储,场景,increment,Redis,value,键值,user,key,数据结构
来源: https://www.cnblogs.com/lyraHeartstrings/p/16634601.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有