MST

星途 面试题库

面试题:Redis SORT命令在安全访问控制方面的基础应用

请简述Redis SORT命令在实现安全访问控制时,如何通过对有序集合的操作来限制用户对特定数据的访问权限,假设我们有一个用户积分系统,不同积分区间的用户能访问不同级别的资源,用Redis SORT命令应如何设计实现?
11.1万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 数据结构设计
    • 使用有序集合(Sorted Set)来存储用户积分信息。有序集合的成员(member)为用户ID,分值(score)为用户的积分。例如:
      ZADD user_scores 100 user1
      ZADD user_scores 200 user2
      
  2. 定义访问权限区间
    • 假设我们有三个级别资源:低级资源(积分0 - 99可访问)、中级资源(积分100 - 199可访问)、高级资源(积分200及以上可访问)。
  3. 使用SORT命令判断访问权限
    • Redis SORT命令本身不直接用于此场景,但可结合有序集合的操作实现。例如,要判断用户user1能否访问中级资源:
      • 先通过ZRANK user_scores user1获取用户user1在有序集合中的排名(排名从0开始)。假设返回值为rank
      • 再通过ZSCORE user_scores user1获取用户user1的积分,假设返回值为score
      • 然后判断score是否在100到199之间。如果score >= 100score < 200,则用户user1可以访问中级资源。
    • 若要获取所有能访问中级资源的用户ID:
      • 可以使用ZRANGEBYSCORE user_scores 100 199,该命令会返回积分在100到199之间的所有用户ID(即成员),这些用户具备访问中级资源的权限。

在实际应用中,可将这些操作封装在应用程序代码中,根据不同的资源访问请求,结合上述Redis有序集合操作逻辑来判断用户权限。