| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> redies数据类型及应用场景 -> 正文阅读 |
|
[大数据]redies数据类型及应用场景 |
Redis支持5中数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合) string:string类型是redis最基本的类型,一个key对应于一个value,并且是二进制安全的,即可以包含任何数据,包括图片或者序列化的对象(突然想起Python的PIL中的Image模块,可以直接将图片转化为二进制文件)。string的一个键最大可以存储512MB。 应用场景: 应用广泛,几乎都用 hash:hash是一个键值(key=>value)对集合,是string类型的field和value的映射表,适合用于存储对象,较之每个字段都存储为string更节省内存。 应用场景: ??假设有多个用户及对应的用户信息,可以用来存储以用户ID为key,将用户信息序列化为比如json格式做为value进行保存。 list:Redis列表是简单的字符串列表,可以类比到C++中的std::list,简单的说就是一个链表或者说是一个队列。可以从头部或尾部向Redis列表添加元素,按照插入顺序进行排序。列表的最大长度为2^32 - 1,也即每个列表支持超过40亿个元素。 应用场景: Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如 微博的关注列表、粉丝列表等都可以用Redis的list结构来实现,再比如有的应用使用Redis的list类型 实现一个简单的轻量级消息队列,生产者push,消费者pop/bpop set:set是string类型的无序集合,通过哈希表实现,所以添加、删除、查找的复杂度都是O(1)。使用sadd命令添加一个元素到对应集合中,成功返回1,如果已经存在返回0,对应的集合不存在则返回错误。 应用场景: 当需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。又或者在微博应用中,每个用户关注的人存在一个集合中,就很容易实现 求两个人的共同好友功能。 zset:zset是string类型元素的集合,且不允许重复的成员,每个元素都会关联一个double类型的分数,通过分数为成员进行从小到大的排序,成员不可以重读,但分数可以重复。 应用场景: 当需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。又比如 用户的积分排行榜需求就可以通过有序集合实现。还有上面介绍的使用List实现轻量级的消息队列,其实也可以通过Sorted Set实现有优先级或按权重的队列。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:46:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |