本文目录导航:
如何检查redis占用内存大小
Redis罕用数据类型Redis最为罕用的数据类型重要有以下五种:StringHashListSetSorted set在详细形容这几种数据类型之前,咱们先经过一张图了解下Redis外部内存治理中是如何形容这些不同数据类型的:首先Redis外部经常使用一个redisObject对象来示意一切的key和value,redisObject最重要的信息如上图所示:type代表一个value对象详细是何种数据类型,encoding是不同数据类型在redis外部的存储模式,比如:type=string代表value存储的是一个个别字符串,那么对应的encoding可以是raw或许是int,假设是int则代表实践redis外部是按数值型类存储和示意这个字符串的,当然前提是这个字符串自身可以用数值示意,比如:“123” “456”这样的字符串。
这里须要不凡说明一下vm字段,只要关上了Redis的虚构内存配置,此字段才会真正的调配内存,该配置自动是封锁形态的,该配置会在前面详细形容。
经过上图咱们可以发现Redis经常使用redisObject来示意一切的key/value数据是比拟糜费内存的,当然这些内存治理老本的付出重要也是为了给Redis不同数据类型提供一个一致的治理接口,实践作者也提供了多种方法协助咱们尽量节俭内存经常使用,咱们随后会详细探讨。
redis 经常出现数据结构以及经常使用场景剖析?
Redis 提供了 5种数据结构,每一种数据结构有各种的经常使用场景。
1、String 字符串字符串类型是 Redis 最基础的数据结构,首先键都是字符串类型,而且 其余几种数据结构都是在字符串类型基础上构建的,咱们经常常使用的 set key value 命令就是字符串。
罕用在缓存、计数、共享Session、限速等。
2、Hash 哈希在Redis中,哈希类型是指键值自身又是一个键值对 结构,形如value={{field1,value1},...{fieldN,valueN}},参与命令:hset key field value。
哈希可以用来寄存用户信息,对比成功购物车3、List 列表列表(list)类型是用来存储多个有序的字符串。
可以做便捷的信息队列的配置。
另外,可以应用 lrange 命令,做基于 Redis的分页配置,性能极佳,用户体验好。
4、Set 汇合汇合(set)类型也是用来保留多个的字符串元素,但和列表类型不一 样的是,汇合中不准许有重复元素,并且汇合中的元素是无序的,不能经过 索引下标失掉元素。
应用 Set 的交加、并集、差集等操作,可以计算独特喜好,所有的喜好,自己独有的喜好等配置。
5、Sorted Set 有序汇合Sorted Set 多了一个权重参数 Score,汇合中的元素能够按 Score 启动陈列。
可以做排行榜运行,取 TOP N 操作。
5种数据类型
Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(汇合)及zset(sorted set:有序汇合)。
① 简介:String是Redis最基础的数据结构类型,它是二进制安保的,可以存储数字,图片或许序列化的对象,值最大存储为512M 便捷经常使用举例: set key value、get key等 运行场景:共享session、散布式锁,计数器、限流。
② 哈希类型是指v(值)自身又是一个键值对(k-v)结构 便捷经常使用举例:hset key field value 、hget key field 外部编码:ziplist(紧缩列表) 、hashtable(哈希表) 运行场景:缓存用户信息等。
③ Redis list 列表是便捷的字符串列表,依照拔出顺序排序。
你可以参与一个元素到列表的头部(左边)或许尾部(左边)。
底层双向链表,可以经过push和pop操作从列表的头部或许尾部参与或许删除元素,这样List即可以作为栈,也可以作为队列 lpush+lpop=Stack(栈) lpush+rpop=Queue(队列) ④ Redis set是string类型的无序汇合。
不蕴含重复元素 ⑤ Redis zset 和 set 一样也是string类型元素的汇合,且不准许重复的成员。
但sorted set可以经过用户额外提供一个优先级(score)的参数来为成员排序,并且是拔出有序的,即智能排序。
Redis sorted set的外部经常使用ziplist或跳表,跳表组合了skiplist和hash,HashMap里放的是成员到score的映射,而跳表里寄存的是一切的成员, 跳表就是在链表的基础上,参与多级索引优化查找效率。
跳表支持平均 O(logN),最坏 O(N)复杂度的节点查找,还可以经过顺序性操作批量解决节点。