REmote DIctionary Server(Redis),一个 key-value 存储系统。

数据类型

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

  • string

    • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。
    • string 类型是 Redis 最基本的数据类型,一个键最大能存储 512MB。
    • 相关命令:set, get
      bash 127.0.0.1:6379> set str1 hello OK 127.0.0.1:6379> get str1 "hello"
  • hash
    • hash 是键值对的集合。
    • 每个 hash 可以存储 2^32 - 1 个(超过 40 亿个)键值对。
    • 相关命令:hmset, hmget, hgetall
      bash 127.0.0.1:6379> hmset hashmap1 name hiwangzi blog hiwangzi.com OK 127.0.0.1:6379> hmget hashmap1 name 1) "hiwangzi" 127.0.0.1:6379> hgetall hashmap1 1) "name" 2) "hiwangzi" 3) "blog" 4) "hiwangzi.com"
  • list
    • list 是字符串列表,按插入顺序排序
    • 列表的最大长度为 2^32 - 1 个元素。
    • 相关命令:lpush, lrange
      bash 127.0.0.1:6379> lpush list1 a b (integer) 2 127.0.0.1:6379> lrange list1 0 100 1) "b" 2) "a" 127.0.0.1:6379> lpush list1 c (integer) 3 127.0.0.1:6379> lrange list1 0 2 1) "c" 2) "b" 3) "a"
  • set
    • set 是字符串的无序集合。
    • 添加,删除和验证成员是否存在的时间O(1)复杂性。
    • set 的最大成员数量为 2^32 - 1 个元素。
    • 相关命令:sadd, smembers
      ```bash
      127.0.0.1:6379> sadd set1 a b
      (integer) 2
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "a"
      127.0.0.1:6379> sadd set1 c
      (integer) 1
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "c"
      3) "a"
      127.0.0.1:6379> sadd set1 a
      (integer) 0
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "c"
      3) "a"

      # a 被添加了两次,但集合有唯一属性,所以只会存储一个。
      ```

  • zset
    • zset = sorted set
    • Redis可排序集合类似于Redis集合,是不重复的字符集合。 不同之处在于,排序集合的每个成员都与分数相关联,这个分数用于按最小分数到最大分数来排序的排序集合。虽然成员是唯一的,但分数值可以重复。
    • 相关命令:zadd, zrange, zrangebyscore
      bash 127.0.0.1:6379> zadd zset_test 0 redis (integer) 1 127.0.0.1:6379> zadd zset_test 0 mongodb (integer) 1 127.0.0.1:6379> zadd zset_test 1 sqllite (integer) 1 127.0.0.1:6379> zadd zset_test 1 sqllite (integer) 0 127.0.0.1:6379> zrange zset_test 0 1000 1) "mongodb" 2) "redis" 3) "sqllite" 127.0.0.1:6379> zrangebyscore zset_test 0 1000 1) "mongodb" 2) "redis" 3) "sqllite"

参考

「Redis 笔记」数据类型的更多相关文章

  1. 「Redis 笔记」常用命令

    编号 命令 描述 1 DEL key 此命令删除一个指定键(如果存在). 2 DUMP key 此命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查键是否存在. 4 EXPI ...

  2. 「学习笔记」Min25筛

    「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}​\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK ...

  3. 「学习笔记」FFT 之优化——NTT

    目录 「学习笔记」FFT 之优化--NTT 前言 引入 快速数论变换--NTT 一些引申问题及解决方法 三模数 NTT 拆系数 FFT (MTT) 「学习笔记」FFT 之优化--NTT 前言 \(NT ...

  4. 「学习笔记」FFT 快速傅里叶变换

    目录 「学习笔记」FFT 快速傅里叶变换 啥是 FFT 呀?它可以干什么? 必备芝士 点值表示 复数 傅立叶正变换 傅里叶逆变换 FFT 的代码实现 还会有的 NTT 和三模数 NTT... 「学习笔 ...

  5. 「学习笔记」Treap

    「学习笔记」Treap 前言 什么是 Treap ? 二叉搜索树 (Binary Search Tree/Binary Sort Tree/BST) 基础定义 查找元素 插入元素 删除元素 查找后继 ...

  6. 「算法笔记」快速数论变换(NTT)

    一.简介 前置知识:多项式乘法与 FFT. FFT 涉及大量 double 类型数据操作和 \(\sin,\cos\) 运算,会产生误差.快速数论变换(Number Theoretic Transfo ...

  7. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  8. 「算法笔记」树形 DP

    一.树形 DP 基础 又是一篇鸽了好久的文章--以下面这道题为例,介绍一下树形 DP 的一般过程. POJ 2342 Anniversary party 题目大意:有一家公司要举行一个聚会,一共有 \ ...

  9. 「学习笔记」wqs二分/dp凸优化

    [学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ...

随机推荐

  1. PAT_A1113#Integer Set Partition

    Source: PAT A1113 Integer Set Partition (25 分) Description: Given a set of N (>) positive integer ...

  2. 编写 Shell 脚本的最佳实践

    转自:http://kb.cnblogs.com/page/574767/ 前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看 ...

  3. 63.es中的type数据类型

    主要知识点 理解es中的type数据类型     一.type的理解 type是一个index中用来区分类似的数据的,但是可能有不同的fields,而且有不同的属性来控制索引建立.分词器.field的 ...

  4. 61.index CUD

    主要知识点 索引CUD     一.创建索引的语法     PUT /my_index { "settings": { ... any settings ... }, " ...

  5. 如何制作一个类似jquery插件的vue插件

    vue拿来写插件,会不会太那啥? 请跟我念,"不会,符合业务需求才是你的老板最想要的." 如何封装一个可以全局调用的vue插件 其原理其实相当简单,通过new Vue(vueCom ...

  6. 还不打算去认识一下webpack?

    前言 随我来,去看看webpack!(为时未晚)============>第一版(较浅显的知识,懂得可忽略本文) 方向 安装,起步搭建运行. (粗略代过) 对于资源的管理,对于输出的管理. (举 ...

  7. 解决win10系统中将JDK1.8切换到JDK1.7时一直失败的问题

    场景:win10系统安装了1.7版本的JDK后,又安装了1.8版本的JDK,在后面的使用中想进行互相切换,但是1.8切换到1.7时一直失败   第一步:  删除 C:\Windows\System32 ...

  8. 【codeforces 483B】Friends and Presents

    [链接] 我是链接,点我呀:) [题意] [题解] 我们可以二分n的值,设为mid 那么对于n=mid 我们可以算出来以下3个东西 temp1 = n/x; temp2 = n/y; temp3 = ...

  9. 使用MySQL自身复制来恢复binlog

    如果需要恢复的二进制日志较多,较复杂,强烈建议使用MySQL自身复制来恢复binlog,而不要使用mysqlbinlog. 目录 [hide] 1. 如何操作 1.1 将binlog作为relay l ...

  10. POJ - 3126 - Prime

    先上题目 Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9259   Accepted: 5274 D ...