list redis 怎样做排行_Redis架构原理及应用实践

Redis 是一款高性能的内存数据库,擅长处理大量读写操作。它支持多种数据结构,如 string、hash、list、set 和 sorted set。在本文中,我们将聚焦于如何使用 Redis 的 sorted set 实现排行榜功能。Redis 的 sorted set 可以按分数对成员进行排序,非常适合用于实时更新的排行榜。此外,Redis 还提供了持久化、复制和哨兵等高可用性方案,确保数据安全和集群稳定性。通过对 Redis 的深入理解和应用,开发者可以构建高效、稳定的应用程序。
摘要由CSDN通过智能技术生成

a3e9fc1421092de8e93f2fa3ef6dbc41.png

一.Redis简介

Redis 是完全开源免费的,是一个高性能的key-value类型的内存数据库。整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。

Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,因此Redis可以用来实现很多有用的功能,比方说用List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间。

总结来说,使用Redis的好处如下:

1.速度快,因为数据存在内存中,读的速度是 110000 次 /s, 写的速度是 81000 次 /s;

2.支持丰富数据类型,支持string,list,set,sorted set,hash;

3.支持事务,操作都是原子性,对数据的更改要么全部执行,要么全部不执行,事务中任意命令执行失败,其余命令依然被执行。也就是说 Redis 事务不保证原子性,也不支持回滚;事务中的多条命令被一次性发送给服务器,服务器在执行命令期间,不会去执行其他客户端的命令请求。

4.丰富的特性:可用于缓存,消息(支持 publish/subscribe 通知),按key设置过期时间,过期后将会自动删除,具体淘汰策略有:

  • 4.1.volatile-lru:从已经设置过期时间的数据集中,挑选最近最少使用的数据淘汰

  • 4.2.volatile-ttl:从已经设置过期时间的数据集中,挑选即将要过期的数据淘汰

  • 4.3.volatile-random:从已经设置过期时间的数据集中,随机挑选数据淘汰

  • 4.4.allkeys-lru:从所有的数据集中,挑选最近最少使用的数据淘汰

  • 4.5.allkeys-random:从所有的数据集中,随机挑选数据淘汰

  • 4.6.no-enviction:禁止淘汰数据

具体过期键的策略有:定时删除(缓存过期时间到就删除,创建timer耗CPU),惰性删除(获取的时候检查,不获取一直留在内存,对内存不友好),定期删除(CPU和内存的折中方案)

5.支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;

6.支持数据的备份,即 master - slave 模式的数据备份。

Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

二.Redis的数据类型

Redis 支持 5 中数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(sorted set:有序集合)。

string

string 是 redis 最基本的数据类型。一个 key 对应一个 value。string 是二进制安全的。也就是说 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。string 类型是 redis 最基本的数据类型,string 类型的值最大能存储 512 MB。

hash

Redis hash 是一个键值对(key - value)集合。Redis hash 是一个 string 类型的 key 和 value 的映射表,hash 特别适合用于存储对象。并且可以像数据库中一样只对某一项属性值进行存储、读取、修改等操作。

list

Redis 列表是简单的字符串列表,按照插入顺序排序。我们可以网列表的左边或者右边添加元素。list 就是一个简单的字符串集合,和 Java 中的 list 相差不大,区别就是这里的 list 存放的是字符串。list 内的元素是可重复的。可以做消息队列或最新消息排行等功能。

set

redis 的 set 是字符串类型的无序集合。集合是通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值