Redis3.0.x 数据类型

五大数据类型

  • String(字符串)

    • string 是 redis 最基本的类型。可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
    • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。
    • string 类型是 Redis 最基本的数据类型。一个 redis 中字符串 value 最多可以是 512M。
  • Hash(哈希)
    • hash 是一个键值对集合。
    • hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
    • 类似 Java 里面的 Map<String, Object>
  • List(列表)
    • list 是简单的字符串列表。按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
    • 它是通过 链表 实现的。
  • Set(集合)
    • set 是 string 类型的无序集合。
    • 它是通过 HashTable 实现的。
  • ZSet(有序集合)
    • zset 和 set 一样也是 string 类型元素的集合,且不允许重复的成员。
    • 不同的是每个元素都会关联一个 double 类型的分数。
    • redis 正是通过分数来为集合中的成员进行从小到大的排序。zset 的成员是唯一的,但分数(score)却可以重复。

key

常用 key 操作:

  • del key 用于在 key 存在时删除 key。
  • dump key 序列化给定 key,并返回被序列化的值。
  • exists key 检查给定 key 是否存在。
  • expire key seconds 为给定 key 设置过期时间,以秒计。
  • expireat key timestamp 作用和 EXPIRE 类似,都用于为 key 设置过期时间。不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳
  • pexpire key milliseconds 设置 key 的过期时间,以毫秒计。
  • pexpireat key milliseconds-timestamp 设置 key 过期时间的时间戳,以毫秒计。
  • keys pattern 查找所有符合给定模式(pattern)的 key 。
  • move key db 将当前数据库的 key 移动到给定的数据库 db 当中。
  • persist key 移除 key 的过期时间,key 将持久保持。
  • pttl key 以毫秒为单位,返回 key 的剩余的过期时间。
  • ttl key 以秒为单位,返回 key 的剩余的过期时间,-1 表示永不过期,-2 表示已过期。
  • randomkey 从当前数据库中随机返回一个 key 。
  • rename key newkey 修改 key 的名称。
  • renamenx key newkey 仅当 newkey 不存在时,将 key 改名为 newkey。
  • scan cursor [MATCH pattern] [COUNT count] 迭代数据库中的数据库键。
  • type key 返回 key 所储存的值的类型。

String

常用命令:

  • set key value 设置指定 key 的值。
  • get key 获取指定 key 的值。
  • getrange key start end 返回 key 中字符串值的子字符
  • getset key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
  • getbit key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
  • mget key1 [key2…] 获取所有(一个或多个)给定 key 的值。
  • setbit key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
  • setex key seconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds,以秒为单位。
  • setnx key value 只有在 key 不存在时设置 key 的值。
  • setrange key offset value 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
  • strlen key 返回 key 所储存的字符串值的长度。
  • mset key value [key value …] 同时设置一个或多个 key-value 对。
  • msetnx key value [key value …] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
  • psetnx key milliseconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds,以毫秒为单位。
  • incr key 将 key 中储存的数字值增一。
  • incrby key increment 将 key 所储存的值加上给定的增量值(increment)。
  • incrbyfloat key increment 将 key 所储存的值加上给定的浮点增量值(increment) 。
  • decr key 将 key 中储存的数字值减一。
  • decrby key decrement 将 key 所储存的值减去给定的减量值(decrement) 。
  • append key value 如果 key 已经存在并且是一个字符串, 将指定的 value 追加到该 key 原来值(value)的末尾。

List

常用命令:

  • blpop key1 [key2 ] timeout 移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  • brpop key1 [key2 ] timeout 移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  • brpoplpush source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  • lindex key index 通过索引获取列表中的元素。
  • linsert key before/after pivot value 在列表的元素前或者后插入元素。
  • llen key 获取列表长度。
  • lpop key 移出并获取列表的第一个元素。
  • lpush key value1 [value2] 将一个或多个值插入到列表头部。
  • lpushx key value 将一个值插入到已存在的列表头部。
  • lrange key start stop 获取列表指定范围内的元素
  • lrem key count value 移除列表元素
  • lset key index value 通过索引设置列表元素的值
  • ltrim key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
  • rpop key 移除列表的最后一个元素,返回值为移除的元素。
  • rpoplpush source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
  • rpush key value1 [value2] 在列表中添加一个或多个值。
  • rpushx key value 为已存在的列表添加值。

Set

常用命令:

  • sadd key member1 [member2] 向集合添加一个或多个成员。
  • scard key 获取集合的成员数。
  • sdiff key1 [key2] 返回给定所有集合的差集
  • sdiffstore destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中。
  • sinter key1 [key2] 返回给定所有集合的交集
  • sinterstore destination key1 [key2] 返回给定所有集合的交集并存储在 destination 中。
  • sismember key member 判断 member 元素是否是集合 key 的成员。
  • smembers key 返回集合中的所有成员。
  • smove source destination member 将 member 元素从 source 集合移动到 destination 集合。
  • spop key 移除并返回集合中的一个随机元素。
  • srandmember key [count] 返回集合中一个或多个随机数。
  • srem key member1 [member2] 移除集合中一个或多个成员。
  • sunion key1 [key2] 返回所有给定集合的并集
  • sunionstore destination key1 [key2] 所有给定集合的并集存储在 destination 集合中。
  • sscan key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素。

Hash

常用命令:

  • hdel key field1 [field2] 删除一个或多个哈希表字段。
  • hexists key field 查看哈希表 key 中,指定的字段是否存在。
  • hget key field 获取存储在哈希表中指定字段的值。
  • hgetall key 获取在哈希表中指定 key 的所有字段和值。
  • hincrby key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment。
  • hincrbyfloat key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment。
  • gkeys key 获取所有哈希表中的字段。
  • hlen key 获取哈希表中字段的数量。
  • hmget key field1 [field2] 获取所有给定字段的值。
  • hmset key field1 value1 [field2 value2 ] 同时将多个 field-value(域-值)对设置到哈希表 key 中。
  • hset key field value 将哈希表 key 中的字段 field 的值设为 value。
  • hsetnx key field value 只有在字段 field 不存在时,设置哈希表字段的值。
  • hvals key 获取哈希表中所有值。
  • hscan key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对。

ZSet

常用命令:

  • zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数。
  • zcad key 获取有序集合的成员数。
  • zcount key min max 计算在有序集合中指定区间分数的成员数。
  • zincrby key increment member 有序集合中对指定成员的分数加上增量 increment。
  • zinterstore destination numkeys key [key …] 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中。
  • zlexcount key min max 在有序集合中计算指定字典区间内成员数量。
  • zrange key start stop [WITHSCORES] 通过索引区间返回有序集合指定区间内的成员。
  • zrangebylex key min max [LIMIT offset count] 通过字典区间返回有序集合的成员。
  • zrangebyscore key min max [WITHSCORES] [LIMIT] 通过分数返回有序集合指定区间内的成员。
  • zrank key member 返回有序集合中指定成员的索引。
  • zrem key member [member …] 移除有序集合中的一个或多个成员。
  • zremrangebylex key min max 移除有序集合中给定的字典区间的所有成员。
  • zremrangebyrank key start stop 移除有序集合中给定的排名区间的所有成员。
  • zremrangebysocre key min max 移除有序集合中给定的分数区间的所有成员。
  • zrevrance key start stop [WITHSCORES] 返回有序集中指定区间内的成员,通过索引,分数从高到低。
  • zrevrancebyscore key max min [WITHSCORES] 返回有序集中指定分数区间内的成员,分数从高到低排序。
  • zrevrank key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序。
  • zscore key member 返回有序集中,成员的分数值。
  • zunionstore destination numkeys key [key …] 计算给定的一个或多个有序集的并集,并存储在新的 key 中。
  • zscan key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成员和元素分值)。

练习和总结

【Redis3.0.x】数据类型的更多相关文章

  1. linux安装redis-3.0.7

    一.Redis介绍 1.简介 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类 ...

  2. Python并发编程-redis-3.0.5 源码安装

    1.简介 Remote Dictionary Server(Redis)是一个基于 key-value 键值对的持久化数据库存储系统.redis 和 Memcached 缓存服务很像,但它支持存储的 ...

  3. redis-3.0.0安装

    redis-3.0.0安装 前言 redis是常用的no-sql数据库,常用于缓存数据,同时,他也可以持久化数据.他是C语言开发的,所以安装的时候需要编译. 单机版redis yum install ...

  4. 【Redis3.0.x】事务

    Redis3.0.x 事务 基本概念 multi,exec,discard,watch 是 Redis 事务的基础,它们允许一步执行一组命令,有两个重要保证: 事务中的所有命令都被序列化并顺序执行.在 ...

  5. 【Redis3.0.x】实战案例

    Redis3.0.x 实战案例 简介 <Redis实战>的学习笔记和总结. 书籍链接 初识 Redis Redis 简介 Redis 是一个速度非常快的键值对存储数据库,它可以存储键和五种 ...

  6. Redis3.0 配置文件说明

    背景: 以前有篇文章已经结果过了,现在复习一下,对Redis3.0进行说明: 参数说明: #redis.conf # Redis configuration file example. # ./red ...

  7. redis3.0.6安装(linux和windows)

    官网上描述安装方法如下:$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz$ tar xzf redis-3.0.6.tar.gz$ ...

  8. Redis3.0.1 Stable版本的集群部署(Mac)

    本文档基于如下原始文档(CentOS)创建: http://blog.csdn.net/xu470438000/article/details/42971091 修改了一些路径的错误,补全了一些命令执 ...

  9. Redis3.0.7 cluster/集群 安装配置教程

    1.前言 环境:CentOS-6.7-i386-LiveDVD 安装的CentOs系统 节点: 6个节点,3个主节点.3个从节点(由于redis默认需要3个主节点,如果想每个主节点有一个从节点,这是最 ...

随机推荐

  1. 【补题记录】ZJU-ICPC Summer Training 2020 部分补题记录

    补题地址:https://zjusummer.contest.codeforces.com/ Contents ZJU-ICPC Summer 2020 Contest 1 by Group A Pr ...

  2. Codeforces Edu Round 59 A-D

    A. Digits Sequence Dividing 注意特殊情况,在\(n = 2\)时除非\(str[1] >= str[2]\),否则可以把第一个数划分下来,剩下的数直接当成一组,一定满 ...

  3. Springboot — 用更优雅的方式发HTTP请求:RestTemplate

    RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率. 我之前的HTTP开发是用ap ...

  4. 面试官:小伙子,你给我简单说一下RocketMQ 整合 Spring Boot吧

    前言 在使用SpringBoot的starter集成包时,要特别注意版本.因为SpringBoot集成RocketMQ的starter依赖是由Spring社区提供的,目前正在快速迭代的过程当中,不同版 ...

  5. Java8新增的这些集合骚操作,你掌握了嘛?

    目录 Iterable的forEach Iterator的forEachRemaining Collection的removeIf Stream操作 List的replaceAll List的sort ...

  6. 【Ubantu 系统显示ip为127.0.0.1 解决办法】

    现象:Ubantu : >>>ifconfig  Link encap:以太网  硬件地址******************            inet 地址:127.0.0. ...

  7. mysql 8.0忘记root密码

    1.修改参数文件添加以下内容 skip-grant-tables 2.关闭数据库 [root@node01 ~]# /etc/init.d/mysqld8 stop Shutting down MyS ...

  8. Swing01-概述

    1.Swing概述 Swing百分之百由Java本身实现,是一套轻量级组件(完全由Java实现的组件叫做轻量级套件,依赖于本地平台的套件称之为重量级套件).Swing不再依赖于平台的GUI,因此真正做 ...

  9. Java8中执行js脚本

    代码中除了callJSFunctionFromFile函数,其他均转载于文章JDK1.8中如何用ScriptEngine动态执行JS import jdk.nashorn.api.scripting. ...

  10. MySQL-实体映射关系和连接查询

     一 数据库实体的映射关系 1. 一对一:学生表和学生档案表,一个学生只有一个对应的档案. 2. 一对多/多对一:一个球队友多个球员(一对多),多个球员属于一个球队(多对一) 3. 多对多:一个学生可 ...