1. Redis五类数据类型

在Redis数据库中一共存在5种数据类型:

  • string 字符串(可以为整形、浮点型和字符串,统称为元素)
  • Hash hash散列值(hash的key必须是唯一的)
  • list 列表(实现队列,元素不唯一,先入先出原则)
  • set 集合(各不相同的元素)
  • sort set 有序集合

1.1 string数据类型

对整个字符串或者字符串的其中一部分执行操作;对整数和浮点数执行自增(increment)或者自减(decrement)操作,Redus的字符串和其他变成语言或者其他键值存储提供的字符串非常相似。
Redis中的字符串是一个字节序列。Redis中的字符串是二进制安全的,这意味着他们的长度不由任何特殊的终止字符决定。因为,可以在一个字符串中存储高达512兆字节的任何内容

1.1.1 特色常用命令

  • Get :获取存储在给定键中的值
  • Set :设置存在在给定键中的值
  • incr :将键存储的值上加上1
  • decr :将键存储的值上减去1
  • incrby:将键存储的值上加上整数amount
  • decrby:将键存储的值上减去整数amount
  • incrbyfloat:将键存储的值上加上浮点数amount(该命令在Redis2.6或以上的版本可用)

其他命令可通过帮助,官网或者学习资料查找

1.1.2 注意事项

在Redis中字符串类型的Value最多可以容纳的数据长度是512M

1.2 Hash 哈希散列

键值对的集合。Redis散列/哈希是字符串字段和字符串值之间的映射,但字段值既可以是字符串又可以是数值。因此,他们用于表示对象。因此一般可以采用Json的方式进行交互,同时可以对散列存储的数字值执行自增操作或自减操作

1.2.1 特色常用命令

  • HMGET:从散列里面获取一个或多个键的值
  • HMSET:为散列里面的一个或多个键设置值
  • HDEL:删除散列里面的一个或者多个键值对,返回成功找到并删除的键值对数量
  • HLEN:返回散列包含的键值对数量

1.2.2 注意事项

  1. 节约空间(使用zipmap的紧密摆放的存储模式)
  2. 更新、访问方便
  3. Hash数据很像关系型数据库的表的一行数据,但是字段是可以随意定制的,没有严格约束的,非常灵活

1.3 Set 集合

Set无序去重,Redis的集合以无序的方式来存储过的各不相同的元素,用户可以快速的对集合执行添加元素操作、一处元素操作以及检查一个元素是否存在于集合中

1.3.1 特色常用命令

  • SADD:将一个或多个元素添加到集合里,并返回呗添加元素当中原本并不存在于集合里面的元素数量
  • SREM:从集合里面移除一个或多个元素,并返回被移除元素的数量
  • SISMEMBER:检查元素item是否存在于集合key-name里
  • SCARD:返回集合包含的元素的数量
  • SMEMBERS:返回集合包含的所有元素
  • SRANDMEMBER:从集合里面随机地返回一个或多个元素。当count为正数时,命令返回的随机元素不会重复,当count为负数时,命令返回的随机元素可能回出现重复
  • SPOP:随机的移除集合中的一个元素,并返回被移除的元素
  • SMOVE:如果集合source-key包含元素item,那么从集合source-key里面移除元素item,并将元素item添加到集合dest-key中:如果item被成功移除,那么命令返回1,否则返回0

1.4 ZSET

ZSet有序去重,有序集合的值被称为分值,分值必须时浮点数。有序集合时Redis里面唯一一个既可以根据成员访问元素,又可以根据分值以及分治的排列顺序来访问元素的结构

—ps:具体的解释就是,英雄联盟比赛的时候打赏,然后能够实时的返回顺序。(对我就是各loler,尽管现在不怎么玩了,可能是因为菜吧)

1.4.1 特色常用命令

  • ZADD:将带用给定分值的成员添加到有序集合里面
  • ZREM:从有序集合里面移除给定的成员,并返回被移除成员的数量
  • ZCARD:返回有序集合包含的成员数量
  • ZINCRBY:将member成员的分值加上increment
  • ZCOUNT:返回分值介于min和max之间的成员数量
  • ZRANK:返回成员member在有序集合中的排名
  • ZSCORE:返回成员member的分值
  • ZRANGE:返回有序集合中排名结语start和stop之间的成员,如果给定了可选的WithSORES选项,那么命令将成员的分值也一并返回

1.5 LIST链表

Redis对链表(linked-list)结构的支持使得它在键值存储的世界中独树一帜,一个列表结构可以有序的存储多个字符串。

1.5.1 特色常用命令

RPUSH:将一个或多个值推入到列表的右端
LPUSH:将一个或多个值推入到列表的左端
RPOP:移除并返回列表最右端的元素
LPOP:移除并返回列表最左端的元素
LINDEX:返回列表中偏移量为offset的元素
LRANGE:返回列表从start偏移量到end偏移量范围内的所有元素,其中偏移量为start和偏移量为end的元素也会包含在被返回的元素中
LTRIM:对列表进行修剪,只保留从start偏移量到end偏移量范围内的元素,其中偏移量start和偏移量为end的元素也会被保留。

2. 应用场景

2.1 redis一般应用场景

  • 缓存会话(单点登录)
  • 分布式锁,比如:使用setnx
  • 各种排行榜或计数器
  • 商品列表或用户基础数据列表等
  • 使用list作为消息队列
  • 秒杀,库存扣减等

2.2 五种类型的应用场景

  1. String,redis对于KV的操作效率很高,可以直接用作计数器。例如,统计在线人数等等,另外string类型是二进制存储安全的,所以也可以使用它来存储图片,甚至是视频等。

  2. hash,存放键值对,一般可以用来存某个对象的基本属性信息,例如,用户信息,商品信息等,另外,由于hash的大小在小于配置的大小的时候使用的是ziplist结构,比较节约内存,所以针对大量的数据存储可以考虑使用hash来分段存储来达到压缩数据量,节约内存的目的,例如,对于大批量的商品对应的图片地址名称。比如:商品编码固定是10位,可以选取前7位做为hash的key,后三位作为field,图片地址作为value。这样每个hash表都不超过999个,只要把redis.conf中的hash-max-ziplist-entries改为1024,即可。

  3. list,列表类型,可以用于实现消息队列,也可以使用它提供的range命令,做分页查询功能。

  4. set,集合,整数的有序列表可以直接使用set。可以用作某些去重功能,例如用户名不能重复等,另外,还可以对集合进行交集,并集操作,来查找某些元素的共同点

  5. zset,有序集合,可以使用范围查找,排行榜功能或者topN功能。

Redis五类数据类型简述相关推荐

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

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

  2. redis五种数据类型对应的底层数据结构

    redis五种数据类型对应的底层数据结构 redis的五种数据类型 redis核心对象redisObject type数据类型 encoding编码类型 ptr指针 redis五种数据类型对应的底层数 ...

  3. Redis五种数据类型介绍

    概述 Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合.本文详细介绍这五种数据类型的使用方法.本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方 ...

  4. redis五种数据类型的使用场景

    string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...

  5. Redis五种数据类型及命令(一)

    Redis 五种数据类型详解及命令 Redis五种数据类型分别为: String:最基本的字符串类型. list:列表(如果对比java来看,这个list不是ArrayList,而是LinkedLis ...

  6. redis五种数据类型及其常见操作

    redis五种数据类型及其常见操作 Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 1.strin ...

  7. Redis五种数据类型

    Redis五种数据类型:字符串 String,哈希 hash,列表 list ,集合 set,有序集合 softed set String(字符串) • 二进制安全,可存储任何数据,如图片或者序列化对 ...

  8. redis五种数据类型的应用场景_Redis五种不同的数据类型

    一.redis集群测试环境搭建 参考文章:https://www.jianshu.com/p/0a2f8f80983a redis-cli -c -h 10.96.87.129 -p 7001注意:- ...

  9. (转) 淘淘商城系列——Redis五种数据类型介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/72855562 Redis支持五种数据类型:string(字符串),hash(哈希),list( ...

最新文章

  1. 使用Cookie记录信息
  2. wpsarm64linux,WPS Office 2019 For Linux 11.1.0.9080版发布下载,附更新介绍和安装
  3. 2021-04-28 Python可视化图表生成-Matplotlib绘图
  4. java 对增删该查进行测试_java连接mysql增删改查测试通过
  5. oracle 0值处理判断,ORACLE数据统计0的处理
  6. 在windows上编译apr等相关动态库
  7. C++PrimerCH1
  8. (回溯4)部分全排列
  9. 怎么打开jsp文件目录_ppt转换成pdf怎么转?我选择这个办法
  10. LeetCode-210 Course Schedule II
  11. Dalvik 与 ART 区别
  12. 情感分析入门[2]-一些数学工具
  13. 电动车的蓄电池与锂电池
  14. origin数据平滑_Origin平滑曲线的使用方法
  15. 1-7-2 查询水果价格分数
  16. 【C】求函数的定积分
  17. seo文案策划的一些日常工作内容
  18. 白杨SEO:谈谈如何让微信公众号排版设计好看又实用?
  19. 安装出错:Command line option syntax error.Type Command /? for help.解决方案
  20. html中实现雪花飞舞,京东双12年终盛宴雪花飞舞3D视觉特效

热门文章

  1. [Android Pro] 将你的安卓手机屏幕共享到PC或Mac上
  2. 向量中断和非向量中断的区别
  3. 修改数据库表的某一字段长度
  4. Android 文件下载中文名乱码的解决办法
  5. 十行代码将Redis缓存数据进行分页提取与展示
  6. linux怎么做bt种子文件,linux 制作BT种子并获取BT种子信息
  7. php redis 存入数组,php redis 多维数组操作
  8. Susan Sontag【苏珊·桑塔格】
  9. 51nod 1770数数字(找规律)
  10. mysql reorg 命令_DB2 runstats、reorgchk、reorg 命令