谈谈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的五种数据类 ...
随机推荐
- 函数指针和成员函数指针有什么不同,反汇编带看清成员函数指针的本尊(gcc@x64平台)
函数指针是什么,可能会答指向函数的指针. 成员函数指针是什么,答指向成员函数的指针. 成员函数指针和函数指针有什么不同? 虚函数指针和非虚成员函数指针有什么不同? 你真正了解成员函数指针了吗? 本篇带 ...
- Windows使用Java执行cmd代码
话不多说,直入正题 今天给大家分享下,怎么在Windows上使用Java执行Cmd代码! 首先默认大家都熟悉cmd代码,以及cmd的命令行操作. 直接在main方法中写这一行(需要抛出异常),可以直接 ...
- 【Luogu P1164】小A点菜
题目原链接: Luogu 小A点菜 [解题思路] 常规的0-1背包,不过是求装满整个背包的方案数,只要把0-1背包的状态转移方程稍微改一下就行.因为要求方案数,那么把方程中的max换成sum就行. [ ...
- 1sql
------------------ MySQL 服务-- sudo service mysql start/stop/restart/status ------------------ 数据库相关的 ...
- python数据分析pandas中的DataFrame数据清洗
pandas中的DataFrame中的空数据处理方法: 方法一:直接删除 1.查看行或列是否有空格(以下的df为DataFrame类型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列 ...
- Log4net 使用汇总(网络收集整理)
原帖1:http://blog.csdn.net/wanzhuan2010/article/details/7587780 原帖2:http://grim1980.blog.sohu.com/2555 ...
- Singletone 析构函数调不到
<设计模式>定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例. 关键字:指向自己的静态指针私有,创建对象并赋值私有静态指针函数->公有, 构 ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- “洞察千里”,华为云HiLens如何让无人车智行天下
作者:华为云 Rosie 随着人工智能的普及和渗透,"无人"的场景越来越丰富,无人超市.无人车.无人机等已经融入我们的生活. 乘着这股热浪,华为云携手上海交通大学学生创新中心举办了 ...
- python 协程与go协程的区别
进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...