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. Python 反序列化漏洞学习笔记

    参考文章 一篇文章带你理解漏洞之 Python 反序列化漏洞 Python Pickle/CPickle 反序列化漏洞 Python反序列化安全问题 pickle反序列化初探 前言 上面看完,请忽略下 ...

  2. STL-Vector容量问题:

    1.clear,erase ,pop_back() 函数只删除对象,并没有释放vec中的内存,若对象是指针还需要delete:2.在erase,clear,pop_back()删除对象的后,size改 ...

  3. 算法——寻找第K个最大的数

    在未排序的数组中找到第 k 个最大的元素. 链接: leetcode. 解题思路:通过快速排序的思想方法,每次随机获取指定范围内一个树的排序位置,然后根据这个位置,再重新指定范围,直到这个位置索引满足 ...

  4. linux下安装Zookeeper 3.4.14

    1.下载Zookeeper 3.4.14(https://zookeeper.apache.org/) wget https://mirror.bit.edu.cn/apache/zookeeper/ ...

  5. Python不同包之间调用注意事项

    1.不同包之间调用,因为在不同文件夹下,引用的时候加上包名就可以了.运行时,在eclipse直接运行没有问题.但是在,命令行运行时出现找不到模块的错误.原因是,Python只搜索当前目录和内置模块以及 ...

  6. svn工具包+安装教程+使用ip访问

    SVN使用 简介: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.  Server界面 1: 安装这两个文 ...

  7. 容器编排系统之K8s资源标签、标签选择器、资源注解

    前文我们聊到了使用k8s资源配置清单定义资源的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14132890.html:今天我们来聊下资源标签,标签选 ...

  8. Graphql Tutorials(Episode 02)

    1.前言 我们在上篇已经了解Graphql的使命以及Graphql的概况,接下来,我们跑起来另外一个Helloworld来开启继续学习. 2.Helloworld(使用Graphql 原生API) 这 ...

  9. JVM虚拟机(三):Java内存区域

    运行时数据区   Java虚拟机再执行Java程序过程中会把它所管理的内存划分为若干个不同分工的数据区域. 程序计数器   程序计数器时一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示 ...

  10. html 06-HTML5详解

    06-HTML5详解 #HTML5的介绍 #Web 技术发展时间线 1991 HTML 1994 HTML2 1996 CSS1 + JavaScript 1997 HTML4 1998 CSS2 2 ...