谈谈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的五种数据类 ...
随机推荐
- JS三座大山再学习(二、作用域和闭包)
原文地址 作用域 JS中有两种作用域:全局作用域|局部作用域 栗子1 console.log(name); //undefined var name = '波妞'; var like = '宗介' c ...
- 移动端vue页面禁止移动/滚动
当需要在移动端中禁止页面滚动,加入:@touchmove.prevent即可,例子如下 <template> <div @touchmove.prevent> <h3 c ...
- router-link传递参数
有个功能: 依据传入值,跳到产品详情页,但是详情页的内容依据传入值来相应变化. 如果使用点击事件@clic来实现,则有三个重复的跳转代码. 避免多次定义重复函数,可以使用router-link 传参数 ...
- ubuntu 16.04安装并启动openssh
对于没有图形界面的linux系统,一般都会用到远程连接控制,,因此新安装的linux系统,在配好网络后,首先要安装的就是远程连接工具,ssh是常用的方法. ps -ef |grep ssh //查看 ...
- web服务,ftp服务以及共享实现
在开始服务前一定要确保可以ping通外网,在虚拟机联网但ping 不通外网下 确认vim /etc/sysconfig/network-scripts/ifcfg-ens33 (nmcli conne ...
- 解决php使用支付宝SDK报错问题
最近公司将一些项目转移了服务器,后来发现使用支付宝支付时发现出现错误,错误如下: 1 The each() function is deprecated. This message will be s ...
- 基于 HTML5 WebGL 和 VR 技术的 3D 机房数据中心可视化
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
- Python拼接字符串的七种方式
忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今 ...
- 浅谈.NET中的反射
一.概述 1.通过反射可以提供类型信息,从而使得我们开发人员在运行时能够利用这些信息构造和使用对象 2.反射机制允许程序在执行过程中动态地添加各种功能 二.运行时类型标识 1.运行时类型标志(RTT ...
- Liunx 安装配置zsh和oh-my-zsh 替换 bash
一.前言 本文将基于 Liunx 环境安装配置zsh 和 oh-my-zsh 替换 bash oh my zsh Liunx默认shell是单调的bash,而zsh比较高大上,bash有的功能,zsh ...