1. 简介

  set 数据类型是一个集合(没有排序,不重复),可以对 set 类型的数据进行添加、删除、判断是否存在等操作(时间复杂度是 O(1) )   set 集合不允许数据重复,如果添加的数据在 set 中已经存在,将只保留一份。   set 类型提供了多个 set 之间的聚合运算,如求交、并、差集,这些操作在 redis 内部完成,效率很高。

2. 数据模型

sadd key value [value...] //添加元素
srem key value [value...] //删除元素
scard key   //计算元素的个数
sismember key value //判断元素是否在集合中
srandmember key [count]  //随机从集合中返回指定个数的元素,不写默认为1
spop key //从集合随机取出元素
smembers key //获取集合内的所有元素sinter key1 key2 //求集合的交集
sunion key1 key2 //求集合的并集
sdiff key1 key2  //求集合的差集

3. 应用场景

  set 类型的特点是——不重复且无序的一组数据,并且具有丰富的计算功能,在一些特定的场景中可以高效的解决一般关系型数据库不方便做的工作。

(1)“共同好友列表”

  社交类应用中,获取两个人或多个人的共同好友,两个人或多个人共同关注的微博这样类似的功能,用 MySQL 的话操作很复杂,可以把每个人的好友 id 存到集合中,获取共同好友的操作就可以简单到一个取交集的命令就搞定。

// 这里为了方便阅读,把 id 替换成姓名
sadd user:wade james melo paul kobe
sadd user:james wade melo paul kobe
sadd user:paul wade james melo kobe
sadd user:melo wade james paul kobe// 获取 wade 和 james 的共同好友
sinter user:wade user:james
/* 输出:*      1) "kobe"*      2) "paul"*      3) "melo"*/// 获取香蕉四兄弟的共同好友sinter user:wade user:james user:paul user:melo/* 输出:*      1) "kobe"*//*类似的需求还有很多 , 必须把每个标签下的文章 id 存到集合中,可以很容易的求出几个不同标签下的共同文章;把每个人的爱好存到集合中,可以很容易的求出几个人的共同爱好。 */

(2)唯一ip

跟踪一些具有唯一性的一些数据,比如访问某一博客的唯一ip地址的信息,我们仅需要在每次访问的时候,将ip存入redis中。利用服务器端聚合操作方便高效的特性,维护数据对象之间的关联关系。

set 数据类型的应用场景相关推荐

  1. Redis的数据类型以及每种数据类型的使用场景

    人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题往往被人忽略,Redis的数据类型以及每种数据类型的使用场景是什么? 是不是觉得这个问题很基 ...

  2. Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透

    Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透 简单介绍一个redis? redis是内存中的数据结构存储系统,一个key-value类型的非关系型数据库,可持久化的数据库 ...

  3. Redis五种数据类型及应用场景

    Redis五种数据类型及应用场景 MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样 ...

  4. Redis八种数据类型及应用场景介绍

    本文来说下Redis八种数据类型及应用场景介绍 文章目录 概述 String 介绍 应用场景 Hash 介绍 应用场景 List 介绍 应用场景 Set 介绍 应用场景 ZSet 介绍 应用场景 Bi ...

  5. Redis 数据类型及应用场景

    一. redis 特点 所有数据存储在内存中,高速读写 提供丰富多样的数据类型:string. hash. set. sorted set.bitmap.hyperloglog 提供了 AOF 和 R ...

  6. Redis各个数据类型的使用场景

    Redis各个数据类型的使用场景 Redis支持五种数据类型: string(字符串) hash(哈希) list(列表) set(集合) zset(sorted set:有序集合). Redis列表 ...

  7. 2 万字 + 20张图| 细说 Redis 九种数据类型和应用场景

    作者:小林coding 计算机八股文网(操作系统.计算机网络.计算机组成.MySQL.Redis):https://xiaolincoding.com 大家好,我是小林. 我们都知道 Redis 提供 ...

  8. Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)

    本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...

  9. Redis的五种数据类型及应用场景

    1,数据类型 String(字符串,整数,浮点数):做简单的键值对缓存 List(列表):储存一些列表类型的数据结构 Set(无序集合):交集,并集,差集的操作 Hash(包含键值对的无序散列表):结 ...

  10. 超强Redis数据类型与应用场景总结!!

    关于Redis 我们先来聊聊Redis的基础知识. 基于键值对的存储系统 :字典形式. 五种数据结构:字符串(String),Hash(字典),列表(List),集合(Set),有序集合(Sorted ...

最新文章

  1. javascript 仿 C# format
  2. Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
  3. ArcMap 导入 wrl_flmic拍摄的素材如何无损导入电脑
  4. [翻译]三张卡片帮你记住TDD的基本原则
  5. leetcode 724. 寻找数组的中心索引
  6. 玩Python遇到的问题一二三及解决办法
  7. 关于验证码的DEMO
  8. notepad 怎么配置编译c语言,Notepad++ 配置c/c++编译环境
  9. HFSS - GSM 900 单频PIFA天线的设计与仿真
  10. JavaWeb房屋租赁管理系统(servlet+jsp+mysql)
  11. Adobe各种最新版本软件下载 PhotoShop Dreamweaver FW Ai Fl.....
  12. dw33d最新固件openwrt_【矿渣们的救赎】の 小米路由器mini刷OpenWrt
  13. U盘如何使用量产工具格式化
  14. 谈谈DRAM的检测等级(eTT与uTT)
  15. 科普小时代---笔记本连接无线受限
  16. 一切要靠自己努力去争取!!!
  17. 计算机无法安装64位操作系统,怎么看电脑能不能装64位系统|什么样的电脑可以装64位系统...
  18. Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句
  19. java网络编程实用精解_Java网络编程实用精解
  20. 人工智能知识全面讲解:特征工程

热门文章

  1. Date日期类型的绑定
  2. Hbase的shell命令学习
  3. 密码学笔记——zip明文攻击
  4. servlet web.xml学习笔记
  5. iPhone/Mac Objective-C内存管理教程和原理剖析
  6. (原创)Linux下的磁盘碎片整理(2)
  7. rabbitmq的安装和使用
  8. React Native的安装和初始化(android /ios)
  9. BPMS表单版本控制设计
  10. websocket 之入门 (一)