zoukankan      html  css  js  c++  java
  • redis 应用场景和数据类型

    1. 分布式session

    2. 缓存

    3. 分布式锁

    4. 原子计数器

    5. 简单消息队列,发布订阅

    6. 最新列表 排行榜

    https://www.cnblogs.com/NiceCui/p/7794659.html

    个人:

    1.online 人数,利用redis expire特性

    2.补全,利用其有序队列

    3.热点缓存,利用缓存+expire

    4.计数,累计多少次发消息,increment

    -------------------------------------------------------

    Redis数据结构的面试题答案下面几乎可以涵盖。
    时间复杂度的话去官网看下,每个命令的时间复杂度官网都给出了。

    1、Redis的五种数据类型
    字符串string:字符串类型是Redis中最为基础的数据存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据货Json对象描述信息等,是标准的key-value,一般来存字符串,整数和浮点数。Value最多可以容纳的数据长度为512MB
    应用场景很常见的场景用于统计网站访问数量,当前在线人数等。incr命令(++操作)

    列表list:Redis的列表允许用户从序列的两端推入或者弹出元素,列表由多个字符串值组成的有序可重复的序列,是链表结构。好比Java的linkedList,在往两端插入和删除数据时,效率是非常高的,往中间插入数据效率是很低下的。List中可以包含的最大元素数量是232 - 1(即42,9496,7295),40多亿。
    应用场景:1.最新消息、排行榜。2.消息队列,以完成多程序之间的消息交换。可以用push操作将任务存在list中(生产者),然后线程在用pop操作将任务取出进行执行。(消费者)

    集合set:Redis的集合是无序不可重复的,和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是232 - 1(即42,9496,7295),40多亿
    应用场景:1.利用交集求共同好友。2.利用唯一性,可以统计访问网站的所有独立IP。3.好友推荐的时候根据tag求交集大于某个threshold(临界值的)就可以推荐

    散列hash:Redis中的散列可以看成具有String key和String value的map容器,可以将多个key-value存储到一个key中。每一个Hash可以存储232 - 1(即42,9496,7295)个键值对。
    应用场景:例如存储、读取、修改用户属性(name,age,pwd等)

    有序集合zset(sorted set):和set很像,都是字符串的集合,都不允许重复的成员出现在一个set中。他们之间差别在于有序集合中每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。尽管有序集合中的成员必须是卫衣的,但是分数(score)却可以重复。

    应用场景:可以用于一个大型在线游戏的积分排行榜,每当玩家的分数发生变化时,可以执行zadd更新玩家分数(score),此后在通过zrange获取积分top ten的用户信息。

     
    -===========================================-
    https://mp.weixin.qq.com/s?__biz=MzIwMzY1OTU1NQ==&mid=2247484319&idx=1&sn=22384bbd03075914b2e8b82ef7992624&chksm=96cd43d3a1bacac5bdc847a0722dc184ae82f0b24763306599edbde7c6d52aff836b5652d5d5&mpshare=1&scene=1&srcid=07210peR2syPQKsDHtauiOBV&key=dab6ee57fd2f304fc0f57432529ca57967898097b7e461c148ed71619c26960b85ac92a935c059b26e6eab400ad2d2a9f569839958348ce55c7822552c919b44ca859b5af2403e6ae2ccbef73265f2af&ascene=0&uin=MTA2NzUxMDAyNQ%3D%3D&devicetype=iMac+MacBookAir6%2C2+OSX+OSX+10.10.5+build(14F2511)&version=11020012&lang=zh_CN&pass_ticket=sS4A7uQo%2FLh6dL0AIf8H1WjWfjfeE5kzyTz%2FFenkvz2tc9uSructZWaeXtySmAlj
     


  • 相关阅读:
    BE Learing 2 名词解释
    mysql学习笔记(二)之一个粗心的问题
    Struts2/XWork < 2.2.0远程执行任意代码漏洞分析及修补
    DataReceivedEventHandler 委托
    JS数组方法汇总 array数组元素的添加和删除
    jQuery学习总结(一)
    js的lock
    mysql学习笔记(一)之mysqlparameter
    Time Span Attack
    Web Vulnerability Scanner 7.0 Patch for 2010_09_21_01
  • 原文地址:https://www.cnblogs.com/silyvin/p/9106574.html
Copyright © 2011-2022 走看看