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. Vmare虚拟机网络连接方式桥接模式+桥接模式+主机模式

    虚拟机网络连接模式 最近在学习虚拟机和计算机网络,在网上看了一些关于虚拟机网络连接方式的介绍 这篇文章写的不错:https://www.cnblogs.com/luxiaodai/p/9947343. ...

  2. 【题解】AcWing 389. 直径

    原题链接 题目描述 共两个问题,第一问求树的直径长度,第二问求直径的必须边 思路 第一问很好求,lyd书里有,就不再赘述. 这里建议使用两次bfs的方法,因为关系到第二问的路径,这么做比较方便. 然后 ...

  3. 关于svg格式问题

    背景介绍: 在使用photoswipe的时候,引入了css,按钮是使用svg进行展示的,在用vs2010开发调试过程中,发现不能显示按钮.在请求.svg 的文件时,响应头中的content Type始 ...

  4. CSS-backgroound和radial-giadient的常见用法

    前言 这里主要介绍下css中background和radial-giadient径向渐变的使用,工作中用到的地方可能也不太多,但是每次用到了都需要查阅官网,查资料就比较麻烦,这里记录一下我自己整理的常 ...

  5. 冬季里有温度的 3D 可视化智慧供热系统

    前言 随着供暖季来临,我国北方大部分省市开始陆续供热.一年一度的供暖问题被提上了日程.在我们的印象里,供热的设施不论是锅炉.管道还是暖气片,都是坚硬的钢铁.铸铁.HT 通过自主研发的强大的基于 HTM ...

  6. 【Jmeter中,保存测试结果xml时报 error loading results file -see log file 问题的处理办法】

    使用JMeter测试并发保存测试文件时报错:Error loading results file - see file log解决办法:新建一个文本文件(什么类型都可以),在文件中加上<?xml ...

  7. JavaSE11-多态&抽象类&接口

    1.多态 1.1 多态的概述 什么是多态 同一个对象,在不同时刻表现出来的不同形态 多态的前提 要有继承或实现关系 要有方法的重写 要有父类引用指向子类对象 1.2 多态中的成员访问特点 成员访问特点 ...

  8. elasticsearch-head 配置

    elasticsearch-head install node.js Download node.js: 将下载的包,解压并配置环境变量  vim /etc/profile  ​ #set for n ...

  9. 2020-2021-1 20209307《Linux内核原理与分析》第五周作业

    一.理论知识 系统调用:操作系统为用户态进程与硬件设备进行交互提供的一组接口. 系统调用的三层皮:API(应用程序接口),中断向量system_call,中断服务程序sys_xyz 宏观上Linux操 ...

  10. css进阶 06-CSS开发积累

    06-CSS开发积累 #让flex盒子中的子元素们,居中 flex布局常用的三行代码: display: flex; justify-content: center; // 子元素在横轴的对齐方式 ( ...