美文网首页
Redis的数据类型即应用场景

Redis的数据类型即应用场景

作者: 叫我胖虎大人 | 来源:发表于2019-08-26 13:43 被阅读0次

String(最基本的数据类型,二进制安全)

String是二进制安全的(不以/0作为序列化结束的标志),也就是说redis的String可以包含任何数据类型,比如说JPG图像或者是序列化对象.String类型能存储的最大值是512MB.

String就像是Java中的Map一样,一个Key对应一个Value
基本用法:

127.0.0.1:6380> set hello world
OK
127.0.0.1:6380> get hello
"world"
127.0.0.1:6380> set counter 1
OK
127.0.0.1:6380> incr counter
(integer) 2

String底层结构

/**
  * 保存字符串对象的结构
  */
struct sdshdr {
      //buf 中已占用空间的长度
      int len;
      
      //buf 中剩余可用空间的长度
      int free;

      // 数据空间
      char buf[];
};

应用场景:

  • 1.计数器
  • 2.对象存储(需要将对象序列化)
  • 3.分布式锁
  • 4.状态标记

redis的单步操作都是线程安全的,不存在线程安全问题


Hash(String元素组成的字典,适用于存储对象)

示例

127.0.0.1:6380> hmset panghu age 18 job student
OK
127.0.0.1:6380> hget panghu age
"18"
127.0.0.1:6380> hset panghu age 19
(integer) 0
127.0.0.1:6380> hget panghu age
"19"

应用场景

  • 1.对象存储

List列表(按照String元素插入顺序排序)

类似于栈,先进后出,数据可重复
示例

127.0.0.1:6380> lpush mylist  aaa
(integer) 1
127.0.0.1:6380> lpush mylist  bbb
(integer) 2
127.0.0.1:6380> lpush mylist  ccc
(integer) 3
127.0.0.1:6380> lrange mylist 0 10
1) "ccc"
2) "bbb"
3) "aaa"
127.0.0.1:6380> 

应用场景:

  • 消息显示排行榜
    (能做与栈相关的功能)

Set(String元素组成的无序集合,通过HashTable表现,不允许重复)

示例

127.0.0.1:6380> sadd myset  111 222 
(integer) 2  #返回值代表成功添加的元素
127.0.0.1:6380> sadd myset  333 
(integer) 1
127.0.0.1:6380> sadd myset  111
(integer) 0
127.0.0.1:6380> smembers myset
1) "111"
2) "222"
3) "333"

应用场景

  • 存储一些集合性的数据
  • 获取某段时间所有数据去重值

Sorted Set(通过分数来为集合中的成员进行从大到小的排序)

具有去重的特性,还能够按照score进行排序
示例

127.0.0.1:6380> zadd myzset  3 aaa
(integer) 1
127.0.0.1:6380> zadd myzset  1 ccc
(integer) 1
127.0.0.1:6380> zadd myzset  2 bbb
(integer) 1
127.0.0.1:6380> zadd myzset  1 aaa #虽然没有成功添加,但是改变了aaa的score
(integer) 0
127.0.0.1:6380> zrangebyscore myzset 0 10
1) "aaa"
2) "ccc"
3) "bbb"
127.0.0.1:6380> 

应用场景

  • 带权重的队列
  • 进行排名

HyperLogLog

应用场景
-计数


Geo

  • 地理位置信息存储

Redis底层数据基础

1.简单动态字符串
2.链表
3.字典
4.跳跃表
5.整数集合
6.压缩列表
7.对象

参考课程:https://www.imooc.com/search/?words=%E5%89%91%E6%8C%87offer

相关文章

  • Redis缓存总结

    Redis 原理及应用(1)--数据类型及底层实现方式redis学习(八)——redis应用场景 --不错哦 Re...

  • Redis的数据类型即应用场景

    String(最基本的数据类型,二进制安全) String是二进制安全的(不以/0作为序列化结束的标志),也就是说...

  • 18 redis 总结

    1,redis 应用场景: 2, 选择配置文件执行server redis 数据类型以及基本操作:Redis一共...

  • Redis打怪升级,技术干货(壹)

    本文准备从以下几个方面去讲解redis打怪进阶:1)Redis的安装。2)Redis的数据类型及应用场景。 Red...

  • Redis实战

    redis 和 memcached 的区别 1. redis支持更丰富的数据类型(支持更复杂的应用场景):Redi...

  • redis数据类型和应用场景

    redis数据类型和应用场景 redis简介 Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用AN...

  • redis 详解系列之一(基础知识)

    本文内容 redis概述 redis应用场景 单线程架构简介 全局命令讲解 五种数据类型讲解 redis概述 re...

  • Redis Learning

    应用场景:redis 适用于小而热的数据 Redis应用场景 Redis作者谈Redis应用场景我们在应用redi...

  • PHP面试2

    自我介绍api接口安全redis的应用场景mysql优化redis的数据类型mysql存储引擎使用过哪些webse...

  • 阿里P8架构师带你由浅入深学习高性能缓存技术

    Redis入门到写出高性能缓存组件 Redis在高并发系统中的应用场景分析 Redis中常用的数据类型和命令 Re...

网友评论

      本文标题:Redis的数据类型即应用场景

      本文链接:https://www.haomeiwen.com/subject/ljdrectx.html