Redis 数据类型

五种:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
String: get;set
Hash: hmset;hmget
List: lpush, lrange
Set: asdd, smembers
Zset: zadd key score value, ZRANGEBYSCORE score

string:

实例: SET name "runoob"
GET name,string
类型的值最大能存储 512MB

Hash(哈希)

HMSET myhash field1 "Hello" field2 "World"
HGET myhash field1
每个 hash 可以存储 232 -1 键值对(40多亿)。

List(列表)

lpush runoob redis
lpush runoob mongodb
lpush runoob rabitmq
lrange runoob 0 10
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

Set(集合)

sadd runoob redis
注意:以上实例中 rabitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

zset(sorted set:有序集合)

zadd runoob 0 redis
通过实验我们可以看出,在list,set中,初始化还是有初始的几个值得, 例如list中有1,2,3;set中有set1, set2, set3。

附录:

Redis 数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

String(字符串)

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
实例
redis 127.0.0.1:6379> SET name "runoob"
OK
redis 127.0.0.1:6379> GET name
"runoob"
在以上实例中我们使用了 Redis 的 SET 和 GET 命令。键为 name,对应的值为 runoob。

注意:一个键最大能存储512MB。

Hash(哈希)

Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
实例
DEL runoob 用于删除前面测试用过的 key,不然会报错:(error) WRONGTYPE Operation against a key holding the wrong kind of value
redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET myhash field1
"Hello"
redis 127.0.0.1:6379> HGET myhash field2
"World"
实例中我们使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。

每个 hash 可以存储 232 -1 键值对(40多亿)。

List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
实例
redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10

  1. "rabitmq"
  2. "mongodb"
  3. "redis"
    redis 127.0.0.1:6379>

列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

Set(集合)

Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
sadd 命令
添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
sadd key member
实例
redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob

  1. "redis"
  2. "rabitmq"
  3. "mongodb"
    注意:以上实例中 rabitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd 命令
添加元素到集合,元素在集合中存在则更新对应score
zadd key score member
实例
redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> > ZRANGEBYSCORE runoob 0 1000

  1. "mongodb"
  2. "rabitmq"
  3. "redis"

Redis 菜鸟教程学习笔记- Redis 数据结构相关推荐

  1. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  2. Redis详细教程-学习笔记

    Redis 概述 Redis是什么? Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.K ...

  3. python redis订阅_Python 学习笔记 - Redis

    Redis 和Memcached类似 也是一个开源的内存存储系统,存储格式也是通过键值对的方式.不过和memcached比起来,memcached的value只支持字符串,而redis支持字符串,列表 ...

  4. 简明Python教程学习笔记_4_数据结构

    在Python中有三种内建的数据结构--列表.元组和字典. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面记载着你要买的东西,你就容 ...

  5. 【C#】菜鸟教程学习笔记(二)

    前言 这部分似乎依然是跟C++差不多的内容,不过鉴于我之前一直在写套着C++外皮的C--这部分内容还是稍微复习一下吧(心虚) 十.C#封装 封装: 把一个或多个项目封闭在一个物理的或者逻辑的包中.在面 ...

  6. 【C#】菜鸟教程学习笔记(一)

    假装是个前言 教程链接:http://www.runoob.com/csharp/csharp-tutorial.html 学C#主要是为了写Unity的脚本,由于之前已经学过C和C++了,这里仅记录 ...

  7. 8/09 Nodejs 菜鸟教程学习笔记-mia

    1.使用node.js时,我们不仅仅在实现一个应用,同时还实现了整个http服务器. 2.node.js组成: rcquircd模块:rcquirc指令来载入Node.js模块 创建服务器:服务器可以 ...

  8. Redis学习笔记~Redis在windows环境下的安装

    Redis是一个key-value的存储系统,它最大的特点就是可以将数据序列化到文件中. redis存储在服务器的内存或者文件中,它不是session,不是cookies,它只是个更安全,更稳定,更可 ...

  9. Redis学习笔记---Redis的主从复制

    Redis学习笔记-Redis的主从复制 1.Redis的高可用性 高可用性(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性. Rei ...

  10. Redis学习笔记---Redis的模式订阅与退订

    Redis学习笔记-Redis的模式订阅与退订 1.发布订阅简介 发布订阅是一种通信的模式,Redis提供了发布订阅功能,可以用于消息的传输 Redis的发布订阅机制包括三个部分,publisher( ...

最新文章

  1. win10安装程序无法将配置为在此计算机,Win10安装会遇到的问题汇总及解决方法...
  2. AI口语翻译,遇到的可不止口齿不清…….
  3. 分布式架构spring mvc +mybatis +shiro+ Activiti +Alibaba Druid
  4. 参加51CTO学院软考培训,通过后感想
  5. std::bind技术内幕
  6. Android 网易云信获取图片,Android 网易云信集成(一)
  7. 2019年新iPhone消息再曝 将会有重大升级!
  8. 第15章 音乐可视化(《Python趣味创意编程》教学视频)
  9. C# 压缩Access数据库(转)
  10. python里进度条编程_Python实现控制台中的进度条
  11. RestFul 风格规范
  12. MapReduce计算框架知识总结(一)
  13. 纪念王盘声逝世一周年王派演唱会成功举行
  14. STM32一体化步进电机驱动器控制步进电机
  15. Java常用英文单词
  16. android设备检测组件,Device Info HW
  17. C# Word文档中插入、提取图片,文字替换图片
  18. 连连支付提现人民币的时候汇率是怎么样的?
  19. [R语言基础]——数据处理实例
  20. duet二重奏hp_《二重奏》Duet

热门文章

  1. 未来时速——第一章 用事实的力量管理企业
  2. 鼠标停留在按钮上显示文字
  3. Lena图像分解成小块与从小块合成
  4. Hybrid App实现原理
  5. 数电实验 彩灯控制器设计
  6. 交通路标识别(毕业设计)
  7. 什么是恶意软件?病毒,蠕虫,特洛伊木马等有害程序
  8. 去掉桌面计算机快捷方式,电脑小技巧!去掉桌面快捷方式小箭头图标
  9. 富户端商业应用开发教程 开发易买网电子商务交易平台教程
  10. 韩顺平 php大牛班课程,2016 泰牛程序员 韩顺平 PHP 大牛班 javascript课程 完整笔记.doc...