谈谈redis的特性以及使用场景
ok?先从String开始讲:
String:
这是最简单的类型,就是普通的get和set,做简单的KV缓存。
但是在真实的开发环境中,很多men可能会吧很多复杂的结构也统一转成String去储存使用,比如有的men他就喜欢把List转换为JSONString进行储存,拿出来的时候再进行反序列什么的。
String的实际应用场景比较广泛的有:
缓存功能:String字符串是最常用的数据类型,不仅仅是redis,各个语言都是最基本类型。因此,使用redis进行缓存,使用其他数据库作为储存层,利用Redis支持高并发的特点,可以大大加快系统的读写速度,以及降低后端数据库的压力。
计数器:很多系统都会使用redis作为系统的实时计数器,它可能快速的实现计数和查询的功能。最终的数据可以在特定的时间在数据库或者其他储存介质进行永久性保存。
共享用户Session:用户重新刷新界面,可能都需要访问数据进行重新登录,或者访问页面缓存cookie,但是可以使用redis对用户的session进行集中管理,在这种模式之下只要保证Redis的高可用,每次用户Session的更新和获取都可以快速完成,大大的提高效率。
Hash:
这是一种类似于Map的结构,它可以把结构化的数据,比如说一个对象缓存在Redis中,然后每次进行读写缓存的时候,可以操作Hash里的某个字段。
List:
有序列表,这个可是玩出很多花样的。
比如说可以通过List存储一些列表型的数据结构,类似于粉丝列表、文章的评论列表之类的东西。
比如说可以通过irange命令,读取某个闭区间里面的元素,可以基于List实现分页查询,基于Redis实现简单的高性能分页,可以做类似于微博那种下拉就不断分页的功能,性能高,就一页一页的走。
比如说可以搞个简单的消息队列,从List头部怼进去,从List屁股那里拿出来。
消息队列:Redis的链表结构,可以轻松的实现阻塞队列,可以使用左进右出的命令组来完成队列的设计。
Set:
Set是无序集合,会自动去重的那种。
直接基于Set把系统里需要去重的数据扔进去,自动就给去重了,如果你要对一些数据进行快速全局的去重,当然也可以基于JVM内存里的HashSet进行去重,但是如果你的系统部署在多台机器上呢?就得基于Redis进行全局的Set去重。
可以基于Set玩 交集、并集、差集,比如说可以把两个人的好友列表整出来,看下两人共同好友是谁。
SortedSet:
SortedSet是排序的Set,去重并且可以排序,写入的时候给一个分数,自动根据分数排序。
有序集合的使用场景与集合类似,但是set集合不是自动有序的,而sorted Set可以根据分数进行成员间的排序,而且是插入时就排序好。所以当你需要一个有序且不重复的集合列表是就可以选择sorted Set数据结构作为选择方案。
谈谈redis的特性以及使用场景的更多相关文章
- Redis高级特性及应用场景
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- redis 高级特性 不要太好用
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- Redis各种数据类型的使用场景
Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据 ...
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景
Redis不是比较成熟的memcache或者Mysql的替代品,是对于大型互联网类应用在架构上很好的补充.现在有越来越多的应用也在纷纷基于Redis做架构的改造.首先简单公布一下Redis平台实际情况 ...
- (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- Redis 11种Web应用场景举例
在"怎样让redis在你的系统中发挥作用"一文中,salvatore 'antirez' sanfilippo告诉我们如何利用redis独有的数据结构处理能力来解决一些常见问题.一 ...
- Redis的特性及运用
Redis特性 一个产品的使用场景肯定是需要根据产品的特性,先列举一下Redis的特点: 读写性能优异 持久化 数据类型丰富 单线程 数据自动过期 发布订阅 分布式 这里我们通过几个场景,不同维度说下 ...
- Redis五种数据类型应用场景
目录 1.1 回顾 2.1 应用场景 2.1.1 String 2.1.2 Hash 2.1.3 List 2.1.4 Zet 2.1.5 zset 3.1 小结 1.1 回顾 Redis的五种数据类 ...
随机推荐
- 部署helm服务
helm在ocp中相当于catalog中的template k8s中使用helm之前遇到的问题 .很难管理.编辑和维护如此多的服务.每个服务都有若干配置,缺乏一个更高层次的工具将这些配置组织起来. . ...
- [Odoo12基础教程]之win10中odoo12环境搭建
所需材料 1.python3.7 2.pycharm社区版及以上 3.postgresSQL10 下载链接:https://www.enterprisedb.com/thank-you-downloa ...
- 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...
- 转帖:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
地址:http://www.ihref.com/read-16422.html
- Win10无法安装.NET Framework3.5的解决办法
诸位网友如果工作中使用WIN10遇到如图的这种问题,现将解决办法整理如下: 一.第一步就是修复系统:按“Windows+X”点击“Windows PowerShell(管理员)&命令提示符(管 ...
- HUB-交换机-路由器
HUB集线器-物理层 工作原理: 机器1发送一个数据(广播发送),经过集线器hub,hub会转发到其他所有机器,其他机器接收到数据,如果数据是给自己的就收下,如果不是自己的就丢弃 集线器的作用?(su ...
- linux任务计划cron、chkconfig工具、systemd管理服务、unit和target介绍
第8周第1次课(5月14日) 课程内容: 10.23 linux任务计划cron10.24 chkconfig工具10.25 systemd管理服务10.26 unit介绍10.27 target介绍 ...
- 第五章 Unity中的基础光照(1)
[TOC] 渲染总是围绕着一个基础问题:我们如何决定一个像素的颜色?从宏观上来说,渲染包括了两大部分:决定一个像素的可见性,决定这个像素上的光照计算.而光照模型用于决定在一个像素上进行怎样的光照计算. ...
- 基于vue的cropper插件编写分享
目录 简介 实现功能 实现原理 github地址:https://github.com/yinzhida/vue-crop git clone: https://github.com/yinzhida ...
- 【我的物联网成长记8】超速入门AT指令集【华为云技术分享】
[摘要] 在物联网中,AT命令集可用于控制&调测设备.通信模块入网等.本文为您介绍NB-IoT常用的AT命令集及其调测工具. 什么是AT指令集 AT命令,用来控制TE(Terminal Equ ...