Redis数据类型:
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 
1、String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
实例:
常用命令:
  • 设置值:SET KEY_NAME VALUE
Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
  • 获取值:GET KEY_NAME
如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。
  • 删除值:DEL KEY_NAME
删除已存在的键。不存在的 key 会被忽略。
  • 将 key 中储存的数字值增一:INCR KEY_NAME
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
  • 将 key 中储存的数字值减一:DECR KEY_NAME
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
      • 将 key 中储存的数字加上指定的增量值:INCRBY KEY_NAME INCR_AMOUNT
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
  • 将 key 所储存的值减去指定的减量值:DECRBY KEY_NAME DECREMENT_AMOUNT
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
  • 为指定的 key 追加值:APPEND KEY_NAME NEW_VALUE
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的 末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
 
2、Hash(哈希)
Redis hash 是一个键名对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
实例:
 
 
以上实例中 hash 数据类型存储了包含用户脚本信息的用户对象。 实例中我们使用了 Redis HMSET, HGETALL 命令,user:1为键值。
每个 hash 可以存储 232 -1 键值对(40多亿)。
常用命令:
  • 设置值:HSET KEY_NAME FIELD VALUE
Redis Hset 命令用于为哈希表中的字段赋值 。
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
如果字段已经存在于哈希表中,旧值将被覆盖。
  • 获取值:HGET KEY_NAME FIELD_NAME
Redis Hget 命令用于返回哈希表中指定字段的值。
  • 获取所有值:HGETALL KEY_NAME
Redis Hgetall 命令用于返回哈希表中,所有的字段和值。
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度 是哈希表大小的两倍。
  • 同时将多个 field-value (域-值)对设置到哈希表 key 中:HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN
Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。
此命令会覆盖哈希表中已存在的字段。
如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。
  • 获取所有给定字段的值:HMGET KEY_NAME FIELD1...FIELDN
Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。
如果指定的字段不存在于哈希表,那么返回一个 nil 值。
  • 删除一个或多个哈希表字段:HDEL KEY_NAME FIELD1.. FIELDN
Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
  • 为哈希表 key 中的指定字段的整数值加上增量 increment:HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER
Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
增量也可以为负数,相当于对指定字段进行减法操作。
如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。
  • 查看哈希表 key 中,指定的字段是否存在;HEXISTS KEY_NAME FIELD_NAME
Redis Hexists 命令用于查看哈希表的指定字段是否存在。
如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。
  • 获取哈希表中字段的数量:HLEN KEY_NAME
Redis Hlen 命令用于获取哈希表中字段的数量。
哈希表中字段的数量。 当 key 不存在时,返回 0 。
  • 获取所有哈希表中的字段:HKEYS KEY_NAME
Redis Hkeys 命令用于获取哈希表中的所有字段名。
包含哈希表中所有字段的列表。 当 key 不存在时,返回一个空列表。
  • 获取哈希表中所有值:HVALS KEY_NAME
Redis Hvals 命令返回哈希表所有字段的值。
一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。
 
3、List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
 
 
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
常用命令:
  • 将一个或多个值插入到列表头部: LPUSH KEY_NAME VALUE1.. VALUEN
Redis Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。
eg:127.0.0.1:6379> lpush mylist a b c
  • 在列表中添加一个或多个值:RPUSH KEY_NAME VALUE1..VALUEN
Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。
如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。
eg:127.0.0.1:6379> rpush mylist2 a b c
  • 获取列表指定范围内的元素: LRANGE KEY_NAME START END
Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
eg:127.0.0.1:6379> lrange mylist 0 5
127.0.0.1:6379> lrange mylist2 0 -1
  • 移出并获取列表的第一个元素:LPOP KEY_NAME
Redis Lpop 命令用于移除并返回列表的第一个元素。
eg:127.0.0.1:6379> lpop mylist
  • 移除并获取列表最后一个元素:RPOP KEY_NAME
Redis Rpop 命令用于移除并返回列表的最后一个元素。
eg:127.0.0.1:6379> rpop mylist2
  • 获取列表长度:LLEN KEY_NAME
Redis Llen 命令用于返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误。
eg:127.0.0.1:6379> llen mylist
  • 将一个或多个值插入到已存在的列表头部: LPUSHX KEY_NAME VALUE1.. VALUEN
Redis Lpushx 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。
eg:127.0.0.1:6379> lpushx mylist x
  • 为已存在的列表添加值:RPUSHX KEY_NAME VALUE1..VALUEN
Redis Rpushx 命令用于将一个或多个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效。
eg:127.0.0.1:6379> rpushx mylist2 4
  • 移除列表元素: LREM KEY_NAME COUNT VALUE
Redis Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT
count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
count = 0 : 移除表中所有与 VALUE 相等的值。
eg:127.0.0.1:6379> lrem mylist3 2 2     从头开始删除两个键值为2的数据
eg:127.0.0.1:6379> lrem mylist3 -2 2    从末尾开始删除两个键值为2的数据
eg:127.0.0.1:6379> lrem mylist3 0 1     删除所有键值为1的数据
  • 通过索引设置列表元素的值:LSET KEY_NAME INDEX VALUE
Redis Lset 通过索引来设置元素的值。
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
eg:127.0.0.1:6379> lset mylist 3 cc
  • 在列表的元素前或者后插入元素: LINSERT KEY_NAME BEFORE EXISTING_VALUE NEW_VALUE
Redis Linsert 命令用于在列表的元素前或者后插入元素。 当指定元素不存在于列表中时,不执行任何操作。 当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误。
eg:127.0.0.1:6379> linsert mylist3 before b 888
127.0.0.1:6379> linsert mylist3 after b 999
  • 移除列表的最后一个元素,并将该元素添加到另一个列表并返回:RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME
Redis Rpoplpush 命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
eg:127.0.0.1:6379> rpoplpush mylist5 mylist6
 
4、Set(集合)
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
sadd 命令
添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。
 
注意:以上实例中 lisi添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
 
5、zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd 命令
添加元素到集合,元素在集合中存在则更新对应score
zadd key score member
 
 

Redis数据类型及常用命名总结的更多相关文章

  1. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  2. redis笔记总结之redis数据类型及常用命令

    三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...

  3. redis数据类型及常用命令介绍(图文实例)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...

  4. redis数据类型及常用命令使用

    redis干啥的,一般人都知道,但很多人只知道是个缓存数据库,其它的就不知道了,本猿无能亦是如此,然知耻而后勇,我们该理一理这里边的一些逻辑,看看redis究竟是怎么一回事儿,能干啥,怎么做的,这样才 ...

  5. Redis数据类型的常用API以及使用场景

    一.通用命令 1.keys  遍历出所有的key 一般不在生产环境使用 2.dbsize key的总数 3.exists key 4.del key  删除指定key-value 5.expire k ...

  6. redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化

    知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作)   2. 数据类型 (重点) (操作) (理解) 3. 常用指令   (操作)   4. Jedis (重点) (操作) ...

  7. NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  8. 【转】NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  9. Redis API与常用数据类型简介

    Redis API与常用数据类型简介 一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些 ...

随机推荐

  1. CentOS下 Yum 损坏与重建

    yum报错error: rpmdb open failed 这种情况一般是由于rpm数据库被损坏导致的,可按照下述方法重建yum数据库: cd /var/lib/rpm/ rm -rf __db.* ...

  2. The server of Nginx(二)——Nginx基本功能配置

    一.Nginx访问控制 (1)基于授权的访问控制 Nginx于Apache一样,可以实现基于用户授权的访问控制,当客户端要访问相应网站或者目录时要求输入用户名密码才能正常访问,配置步骤与Apache基 ...

  3. MySql安装错误代码1045的解决方案

    1.MySql安装错误代码1045的解决方案 2.root密码忘记1045的解决方案 错误代码 1045 Access denied for user 'root'@'localhost' (usin ...

  4. 评估指标:ROC,AUC,Precision、Recall、F1-score

    一.ROC,AUC ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣 . ROC曲线一般的 ...

  5. Opencv ValueError: not enough values to unpack (expected 3, got 2)解决办法

    问题背景 有些人在用我去年的毕设运行时(感谢QAQ),报错 Opencv ValueError: not enough values to unpack (expected 3, got 2) 当时就 ...

  6. Windows下的ntfs流文件简介

    流文件,即NTFS交换数据流(alternate data streams,简称ADS),是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以 ...

  7. More Effective C++ 35个改善方法

    美·Scott Meyers 侯捷 More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Soluti ...

  8. ios真机测试问题

    前端页面在ios端真机测试出现的问题 由于苹果对于性能的要求是近乎苛刻,如果没有可点的特性的元素系统默认不会给它响应事件,因此真机测试时容易添加不上绑定事件 解决办法: 1.通过js判断当前是否为苹果 ...

  9. Emma姐

  10. Oracle 备份还原

    导出整个数据库,在CMD命令窗口执行 EXP 用户名/密码@服务名(数据库) FULL=Y FILE=路径 EXP INTERFACE/INTERFACE@PIVAS_XMDWYY FULL=Y FI ...