Redis支持五种数据类型

  • String(字符串
  • Hash(哈希)
  • List(列表)
  • Set(集合)
  • zset(sorted set:有序集合)
类型 简介 特性 场景
String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M
Hash(字典) 键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) 存储、读取、修改用户属性
List(列表) 链表(双向链表) 增删快,提供了操作某一段元素的API 1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列
Set(集合) 哈希表实现,元素不重复 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Sorted Set(有序集合) 将Set中的元素增加一个权重参数score,元素按score有序排列 数据插入集合时,已经进行天然排序 1、排行榜 2、带权重的消息队列

String(字符串)

string类型是二进制安全的,redis的string可以包含任何数据,如图像、序列化对象。一个键最多能存储512MB。二进制安全是指,在传输数据的时候,能保证二进制数据的信息安全,也就是不会被篡改、破译;如果被攻击,能够及时检测出来 。

  • 设置键值 :set key value

  • 获取键值 ,如果不存在此键则返回nil :get key

  • 设置多个键值:mset key1 value1 key2 value2

  • 获取多个键值:mget key1 key2

  • 设置键值及过期时间,以秒为单位 :setex key seconds value

  • 只有在 key 不存在时设置 key 的值。setnx key value

  • 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。MSETNX key value [key value ...]

  • 返回 key 中字符串值的子字符 GETRANGE key start end

  • 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。GETSET key value

  • 将key对应的value加1 。INCR key

  • 将key对应的value加整数 。 INCRBY key increment

  • 将key对应的value减1 。 DECR key

  • 将key对应的value减整数。 DECRBY key decrement

  • 追加值 APPEND key value

  • 获取值长度 STRLEN key

hash

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2的32次方 - 1 键值对(40多亿)。

  • 设置单个属性 :hset key field value
  • 设置多个属性 :hmset key field1 value1 field2 value2 ...
  • 只有在字段 field 不存在时,设置哈希表字段的值。 HSETNX key field value

  • 获取⼀个属性的值 : hget key field
  • 获取多个属性的值 : hmget key field1 field2 ...
  • 获取指定键所有的属性 :hkeys key
  • 获取指定键所有属性的值:hvals key

  • 删除属性及值 :hdel key field1 field2 ...
  • 删除整个hash键及值 :del key
  • 判断属性是否存在 : hexists key field

list

列表是简单的string列表,按照插入顺序排序,可以在列表的头部或者尾部添加元素。

  • 在左侧插⼊数据 :lpush key value1 value2 ...
  • 在右侧插⼊数据 :rpush key value1 value2 ...
  • 在指定元素的前或后插⼊新元素 :linsert key before或after 现有元素 新元素

  • 返回列表⾥指定范围内的元素 :lrange key start stop

    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

  • 设置指定索引位置的元素值 :lset key index value

    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

  • 移出并获取列表的第一个元素 :lpop key
  • 移出并返回列表最后一个元素 : rpop key

  • 删除指定元素: lrem key count value

    • 将列表中前count次出现的值为value的元素移除
    • count > 0: 从头往尾移除
    • count < 0: 从尾往头移除
    • count = 0: 移除所有

  • 获取列表长度:llen key
  • 通过索引获取列表中的元素:lindex key index

set

⽆序集合,元素为string类型,元素具有唯⼀性,不重复。说明:对于集合没有修改操作。

  • 添加元素 :sadd key member1 member2 ...
  • 返回集合元素个数:scard key
  • 返回key集合所有的元素 :smembers key

zset

sorted set,有序集合,元素为string类型,元素具有唯⼀性,不重复。每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序。说明:没有修改操作。

  • 添加元素:zadd key score1 member1 score2 member2 ..

向键’a4’的集合中添加元素’lisi’、‘wangwu’、‘zhaoliu’、‘zhangsan’,权重分别为4、5、6、3

  • 返回指定范围内的元素 :zrange key start stop

  • 返回元素个数:zcard key

  • 返回score值在min和max之间的成员 : zrangebyscore key min max

  • 返回成员member的score值 : zscore key member

  • 删除指定元素 :zrem key member1 member2 ..

  • 删除权重在指定范围的元素:zremrangebyscore key min max

Redis 五种数据类型相关推荐

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

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

  2. Redis五种数据类型介绍

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

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

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

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

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

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

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

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

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

  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. docker启动elasticsearch失败--jvm内存不足解决方案
  2. struct timeval结构体
  3. 网络攻防 第三周学习总结
  4. jsp当前页的变量值显示到文本框中hint_Word中常用的这9个打印技巧,你不一定全懂,非常实用...
  5. 未正确安装master data services_GP数据库安装
  6. eclipse报Access restriction: The type 'BASE64Decoder' is not API处理方法
  7. 前端学习(1949)vue之电商管理系统电商系统之实现分页
  8. 2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索
  9. mysql读写分离_MySQL基于amoeba读写分离实验
  10. unity底层运行机制_Unity跨平台的机制原理
  11. 提高篇 第二部分 字符串算法 第4章 AC自动机
  12. POJ-2533 Longest Ordered Subsequence
  13. python comprehensions_Python中的Comprehensions和Generations
  14. 物理内存管理之zone详解
  15. Windows程序设计之基本介绍
  16. VS2019安装智能提示番茄助手VAssistX
  17. js JSON转Excel并导出
  18. springboot接收前端的数组_SpringBoot如何接收数组参数的方法
  19. LCM ASN 在MOBILE下收货流程的后台数据流
  20. 物流行业如何利用智慧物流体系实现转型升级?

热门文章

  1. Zuul使用正则表达式指定路由规则
  2. SpringBoot_日志-其他日志框架统一转换为slf4j
  3. php arcode svg,在react中使用svg的各种方法总结(附代码)
  4. FutureTask源码
  5. 2核4g服务器选啥系统好,云服务器2核4g可以做什么
  6. Linux下c的进一步学习
  7. DevOps自动化工具集合
  8. java中JScrollPane不显示水平滚动条的解决办法
  9. Python format() 函数
  10. 江苏:5G先行,智慧江苏再进一步