• Redis 五种数据类型及其应用场景


    Redis 数据都是 k-v 模型,本身就是hashmap 一种形式,器丰富的数据类型,应该场景特别多。

    Redis 可使用redis-cli:help @string 查看方法

    一,string 

      1, 简单的 key : value 

      2,计数器:设置数值时,incr 加1 ,decr 减1。数值计算

      3,二进制位计算:统计用户 登录天数 1 0 0 1 1 0(登录四天)。365 就是365 个二进制位。

      

      用户A: setbit 202001 9 1 
      用户A 第八天登录设置

      用户A:setbit 202002 265 1

      用户A 第264天登录

      用户B: setbit 20200101 8 1

      用户B 第七天登录设置
    
    

      使用场景:缓存k-v、session、文件系统fs(小文件 项目中频繁 IO 特别快)、计数器、统计注册数、活跃数等等

    二、list

      lpush 添加的数据 a b c d e lrange 0 -1 得到是 e d c b a

      1,list 同向 lpush lpop, rpush lpop(先进后出)  模仿 栈行为

      2, list 异向 lpush rpop (先进先出) 模仿队列

      3,lindex key 1  模仿数组

      4,lstrm 可以优化Reids 内存量。可以只返回部分数据,全量数据可以到MySQL查询,因为不是大部分用户查看全量数据

      使用场景:消息队列,评论列表,替代编程语言容器,模仿栈,队列、数组。

    三、hash 

      如果没有hash:

            set  sean::name tom

            set  sean::age 18

      但是 使用hash:

            hset sean name tom

            hset sean age  18

      就会发现 key 变少了,只有sean 了,只需要 hgetall sean 就可以拿到所有数据,hkeys sean 拿到所有key, hvals sean 拿到所有数据

      hash 可以理解为一个hashmap

      hashmap : redis 的 key-value 就是hashmap ---> hash_table

      使用场景:集聚数据(页面来自很多表的时候,并且数据变化不频繁),详情页,用户详情

    四、set

        特点:无序且不重复

      应该场景:抽奖,验证码,扑克牌

        

    五、zset

       特点:有序且不重复

       应用场景:排行榜、评论:(无序、分页)

       主要实现:skiplist

  • 相关阅读:
    第一个 Python 程序
    Qt之字体文件(TTF)
    Memcached
    Qt之QtSoap(访问WebService)
    Crypto++编译使用
    Memcached
    Windows下编译OpenSSL
    基于Core Text实现的TXT电子书阅读器
    java代码获取jdbc链接properties
    ext树表+ZeroClipboard复制链接功能
  • 原文地址:https://www.cnblogs.com/hellohorld/p/12858793.html
Copyright © 2020-2023  润新知