当前位置:首页 > 数码 > Redis数据类型详解及其在切实运行中的场景展示 (redis数据类型)

Redis数据类型详解及其在切实运行中的场景展示 (redis数据类型)

admin7个月前 (05-13)数码31

引见

Redis(RemoteDictionaryServer)是一个开源的内存数据结构存储系统,罕用作数据库、缓存和信息两边件。它支持多种数据结构,包含字符串、哈希表、列表、汇合、有序汇合等,并提供了丰盛的操作命令,可以对这些数据结构启动极速的读写操作。

Redis的特点包含:

Redis是一特性能弱小、性能优越的内存数据结构存储系统,实用于各种场景下的数据存储和处置需求。

Redis数据类型

这些数据类型在Redis中都有对应的命令可以启动操作,可以依据详细的需求选用适宜的数据类型来存储和处置数据。

Redis运行场景

Redis是一种高性能的内存数据库,罕用于缓存、会话治理、信息队列等场景。以下是Redis的一些经常出现运行场景:

Redis经常使用

设置键值对:SETkeyvalue

失掉键对应的值:GETkey

删除键值对:DELkey

上方是一个经常使用「SpringBoot和Redis」成功缓存性能的示例:

首先,须要在pom.xml文件中减少Redis和SpringBoot的相关依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency></dependencies>

接上去,在application.properties文件中性能Redis的衔接信息:

#Redisspring.redis.host=127.0.0.1spring.redis.port=6379

而后,创立一个缓存性能类,用于性能Redis缓存的相关参数:

@Configuration@EnableCachingpublicclassRedisCacheConfigextendsCachingConfigurerSupport{@BeanpublicRedisTemplate<String,Object>redisTemplate(RedisConnectionFactoryredisConnectionFactory){RedisTemplate<String,Object>redisTemplate=newRedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);redisTemplate.setKeySerializer(newStringRedisSerializer());redisTemplate.setValueSerializer(newGenericJackson2JsonRedisSerializer());returnredisTemplate;}@BeanpublicCacheManagercacheManager(RedisConnectionFactoryredisConnectionFactory){RedisCacheConfigurationcacheConfiguration=RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(10)).disableCachingNullValues();returnRedisCacheManager.builder(redisConnectionFactory).cacheDefaults(cacheConfiguration).build();}}

在须要缓存的方法上减少@Cacheable注解,指定缓存的称号缓和存的key:

@ServicepublicclassUserService{@AutowiredprivateUserRepositoryuserRepository;@Cacheable(value="users",key="#id")publicUsergetUserById(Longid){returnuserRepository.findById(id).orElse(null);}}

最后,启动SpringBoot运行程序,即可经常使用Redis成功缓存性能。


Redis有哪几种数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 (推荐学习:Redis视频教程)String(字符串)string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。 string 类型是二进制安全的。 意思是 redis 的 string 可以包含任何数据。 比如jpg图片或者序列化的对象。 string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。 常用命令:set、get、decr、incr、mget等。 注意:一个键最大能存储512MB。 Hash(哈希)Redis hash 是一个键值(key=>value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。 每个 hash 可以存储 232 -1 键值对(40多亿)。 常用命令:hget、hset、hgetall等。 应用场景:存储一些结构化的数据,比如用户的昵称、年龄、性别、积分等,存储一个用户信息对象数据。 List(列表)Redis 列表是简单的字符串列表,按照插入顺序排序。 你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 list类型经常会被用于消息队列的服务,以完成多程序之间的消息交换。 常用命令:lpush、rpush、lpop、rpop、lrange等。 列表最多可存储 232 - 1 元素 (, 每个列表可存储40多亿)。 Set(集合)Redis的Set是string类型的无序集合。 和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。 集合最大的优势在于可以进行交集并集差集操作。 Set可包含的最大元素数量是。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 应用场景:1、利用交集求共同好友。 2、利用唯一性,可以统计访问网站的所有独立IP。 3、好友推荐的时候根据tag求交集,大于某个threshold(临界值的)就可以推荐。 常用命令:sadd、spop、smembers、sunion等。 集合中最大的成员数为 232 - 1(, 每个集合可存储40多亿个成员)。 zset(sorted set:有序集合)Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。 redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。 sorted set是插入有序的,即自动排序。 常用命令:zadd、zrange、zrem、zcard等。 当你需要一个有序的并且不重复的集合列表时,那么可以选择sorted set数据结构。 应用举例:(1)例如存储全班同学的成绩,其集合value可以是同学的学号,而score就可以是成绩。 (2)排行榜应用,根据得分列出topN的用户等。 更多redis相关技术知识,请访问Redis使用入门教程栏目学习!

redis的五种数据类型

redis的五种数据类型分别是string、hash 、list、set、zset 。

一、string

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,string类型的值最大能存储512MB。

二、hash

Redishash是一个键值(key=>value)对集合。Redishash是一个string类型的field和value的映射表,hash特别适合用于存储对象。HMSET,HGET命令,HMSET设置了两个field=>value对,HGET获取对应field对应的value。

三、list

列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。列表最多可存储232—1元素(,每个列表可存储40多亿)。lpush设置值,lrange取值。

四、set

redis的set是string的无序集合。集合通过哈希表实现。添加一个string元素到key对应的set集合中,用sadd命令。返回1表示成功,0表示在集合中已存在,返回错误表示key对应的set不存在。查看用smembers命令。集合内元素的唯一性,第二次插入的元素将被忽略。集合中最大的成员数为232—1(,每个集合可存储40多亿个成员)。

Redis数据类型详解及其在切实运行中的场景展示

五、zset

redis的zset和set一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

Redis数据模型和性能:

一、数据模型

1、字符串列表。

2、无序不重复的字符串集合。

3、有序不重复的字符串集合。

4、键、值都为字符串的哈希表。

二、性能

1、测试完成了50个并发执行个请求。

2、设置和获取的值是一个256字节字符串。

3、Linux box是运行Linux 2.6,这是X3320 Xeon 2.5 ghz。

4、文本执行使用loopback接口(127.0.0.1)。

5、结果:读的速度是次/s,写的速度是次/s 。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Redis

“Redis数据类型详解及其在切实运行中的场景展示 (redis数据类型)” 的相关文章

Redis数据删除后-内存占用为何居高不下 (redis数据类型)

Redis数据删除后-内存占用为何居高不下 (redis数据类型)

作为面试经验丰富的开发人员,肯定会遇到过这样的问题:做了数据删除操作,为什么使用 top 命令时,仍然显示 Redis 占用了大量内存? 答案 这是因为当数据删除后,Re...

大厂Redis重试战略剖析-深化摸索行业通常 (大厂redis面试题)

大厂Redis重试战略剖析-深化摸索行业通常 (大厂redis面试题)

受网络和运转环境影响,运行程序或许遇到临时性缺点,如刹时网络颤抖、服务临时无法用、服务忙碌造成超时等。 智能重试机制可大幅防止此类缺点,保证操作成功口头。 1引发临时性缺点的要素...

安装并配置-Kubernetes-集群 (安装并配置mysql的实验总结)

安装并配置-Kubernetes-集群 (安装并配置mysql的实验总结)

日常开发中,基于自然支持散布式锁,大家在线上散布式名目中都经常使用过Redis锁。本文重要针对日常开发中加锁环节中某些意外场景启动解说与剖析。本文解说示例代码都在名目目录下 RedisLo...

排查与处置指南-Redis大Key危害 (排查与处置指的是什么)

排查与处置指南-Redis大Key危害 (排查与处置指的是什么)

这是一位同窗往年秋招参与得物一面遇到的疑问,完整面经如下: 这个疑问在面试中还是比拟容易遇到的,尤其是在调查性能优化相关常识点的时刻。 通常状况下,问了bigkey(大Key)还会继续...

引发业界震荡-Redis叛逃开源-得罪了 (引发业界震荡的因素)

引发业界震荡-Redis叛逃开源-得罪了 (引发业界震荡的因素)

Redis 许可变更:开源界的巨石 导言 近来,内存数据库供应商 Redis 宣布了一项重大变更,该变更将在开源界掀起轩然大波。Redis 将转向双许可模式,并采用更严格的许可条款。此举引起了社区...

上古程序猿推戴经常使用Redis的执著理由 (上古教程)

上古程序猿推戴经常使用Redis的执著理由 (上古教程)

最近,在知乎上看到这样一个疑问: 有些上古程序猿不时保持推戴经常使用怎样办? 终究用不用Redis?为什么用?怎样用?让咱们看看网友怎样说…… @灵剑...

成功多规则限流的思索与通常-Redis (成功的规则)

成功多规则限流的思索与通常-Redis (成功的规则)

市面上很多引见如何成功限流的,然而大局部都有一个缺陷,就是只能成功繁多的限流,比如1分钟访问1次或许60分钟访问10次这种,然而假构想一个接口两种规则都须要满足呢,咱们的名目又是散布式名目,应该如何处...

Redis-全面了解数据耐久性和复原机制-深度解析-耐久化 (redis淘汰策略有哪些)

Redis-全面了解数据耐久性和复原机制-深度解析-耐久化 (redis淘汰策略有哪些)

我们都知道在关于的开发或许面试的环节中,很容易就会遇到这个关于Redis耐久化的疑问,而我们在面试的时刻,经常会有小同伴只能说出这个Redis耐久化的两种形式,后续或许还会对比一些区别,然而关于怎...