redis 集合排重_Redis介绍

本文介绍了Redis作为NoSQL数据库的主要特点,包括高并发读写、丰富的数据结构和原子性操作。详细阐述了Redis的集合排重应用,如最新数据、排行榜、计数器和缓存等场景。同时,讲解了Redis的五大数据类型(字符串、哈希、列表、集合、有序集合)及其常用操作,展示了其在存储和处理数据方面的高效性和灵活性。
摘要由CSDN通过智能技术生成

一、NoSQL

1.1、什么是NoSQL?NoSQL最常见的解释是“non-relational”, 很多人也说它是“Not Only SQL”

NoSQL仅仅是一个概念,泛指非关系型的数据库

区别于关系数据库,它们不保证关系数据的ACID特性。原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

NoSQL是一项全新的数据库革命性运动,提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

1.2、NoSQL的特点

1.2.1、应用场景高并发的读写

海量数据读写

高可扩展性

速度快

1.2.2、不适用场景需要事务支持

基于sql的结构化查询存储,处理复杂的关系,需要即席查询(用户自定义查询条件的查询)

二、Redis的特点高效性。Redis读取的速度是110000次/s,写的速度是81000次/s

原子性。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

支持多种数据结构。string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序集合)

稳定性:持久化,主从复制(集群)。

其他特性:支持过期时间,支持事务,消息订阅。

三、Redis的应用场景

1.1、取最新N个数据的操作

比如典型的取网站最新文章,可以将最新的5000条评论ID放在Redis的List集合中,并将超出集合部分从数据库获取。

1.2、排行榜应用,取TOP N操作

这个需求与上面需求的不同之处在于,前面操作以时间为权重,这个是以某个条件为权重,比如按顶的次数排序,可以使用Redis的zset,将要排序的值设置成zset的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。

1.3、需要精准设定过期时间的应用

比如可以把上面说到的zset的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了,不仅是清除Redis中的过期数据,你完全可以把Redis里这个过期时间当成是对数据库中数据的索引,用Redis来找出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录。

1.4、计数器应用

Redis的命令都是原子性的,你可以轻松地利用INCR,DECR命令来构建计数器系统。

1.5、Uniq操作,获取某段时间所有数据排重值

这个使用Redis的set数据结构最合适了,只需要不断地将数据往set中扔就行了,set意为集合,所以会自动排重。

1.6、缓存

四、Redis的数据类型

1.1、对字符串string的操作序号命令及描述示例

1SET key value

设置指定 key 的值示例:SET hello world

2GET key

获取指定 key 的值。示例:GET hello

4GETSET key value

将给定 key 的值设为 value ,并返回 key 的旧值(old value)。示例:GETSET hello world2

5MGET key1 [key2..]

获取所有(一个或多个)给定 key 的值。示例:MGET hello world

6SETEX key seconds value

将值 value 关联到 key ,并将 key 的过期时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值