Redis的数据结构类型,指的是redis的值的value类型;

  Redis的常用数据结构类型:string,list,set,sortedSet,hash

一.sting的类型

  string类型是redis最常见的数据结构类型,存储的值为字符串。

  1.1String相关命令

  set key value :设置一个key,值为value,类型为String类型;如果这个key已经存在,则更新这个key的值。

    返回值

      1表示成功

      0表示失败

  setnx key vale:如果这个key不存在,则设置一个key,值为value;如果key存在,则不做更新。

    返回值

      1表示成功

      0表示失败

  get key:获取对应的value值;如果key不存在,则返回nil。

  incr key:将key中存储的数字值增一,然后返回。如果这个key不存在,那么key的值会先被初始化为0,然后再执行INCR操作。如果这个key对应的value值,不能表示数字,则会返回一个错误。

  incrby key increment:将key增加指定步长。

  decr key:将key中储存的数字值减一,然后返回。如果这个key不存在,那么key的值会先被初始化为0,然后再执行INCR操作。如果这个key对应的value值,不能表示数字,则会返回一个错误。

  decrby key decrement:将key减少对应的步长值。

  append key value:如果key已经存在,则将value追加到这个key原先的value值的末尾。如果这个key不存在,则执行set操作。

  Redis的key是单线程模式,这意味着一瞬间只有一个线程能够持有这个key,所以,可以使用redis解决部分涉及线程安全的业务。

二.List类型

  1.特点

    (1)基于Linked List实现

    (2)元素是字符串类型

    (3)列表头尾增删快,中间增删慢,增删元素是常态

    (4)元素可以实现重现

    (5)最多包含2^32-1元素

  2.List类型相关命令

    lpush key value [value ...]:将一个或多个value插入到列表key的表头(即从左边插入);如果有多个value值,那么各个value值按从左到右的顺序依次插入表头;如果key不存在,一个空列表会被创建并执行LPUSH操作,当key存在但不是列表类型时,返回一个错误。

    rpush key value [value...]:尾部添加(从右向左),操作同上。

    llen key :返回key对应list长度,key不存在返回0,如果key对应类型不是list返回错误。

    lindex key index:index元素在list列表的下角标,从0开始;lindex是从左到右取元素。

    lrange key start stop:获取指定区间的所有元素;下角标从0开始,0表示第一个元素,1表示第二个,以此类推;-1表示最后一个元素,-2表示倒数第二个元素,以此类推。

    lpop key :移除并返回列表中的第一个元素。

    rpop key:移除并返回列表中的最后一个元素。

三.Hash类型(散列)

  1.特点

    (1)由Field和之关联的value组成map键值对

    (2)field和value是字符串类型;

    (3)一个hash中最多包含2^32-1键值对。

  2.Hash相关命令

    hset key field value:设置hash field为指定值,如果key不存在,则先创建,如果field已经存在那么将更新这个field的值。

    hget key field:获取指定的hash field

    hmget key filed1...fieldN:获取全部指定的hash field

    hmset key filed1 value1 ... filedN valueN:同时设置hash的多个field

    hexists key field:测试指定field是否存在

    hdel key field:删除指定的hash field

    hlen key:返回指定hash的field数量

    hkeys key:返回hash的所有field

    hvals key:返回hash的所有value

    hgetall:返回hash的所有filed和value

四:Set相关命令

  1.特点

    (1)无序的,去重的;

    (2)元素是字符串类型;

    (3)最多包含2^32-1元素。

  2.Set相关命令

    sadd key member [member  ...](无序不重复):将一个或多个 member 元素加入到集合key 当中,已经存在于集合的 member 元素将被忽略。假如 key 不存在,则创建一个只包含 member 元素作成员的集合。当 key 不是集合类型时,返回一个错误。

    smembers key:返回集合 key 中的所有成员。不存在的 key 被视为空集合。

    spop key:移除并返回集合中的一个随机元素。被移除的随机元素。当key不存在或key是空集时,返回nil。

    scard key:返回集合key的基数(集合中元素的数量)。集合的基数。当key不存在时,返回0。

交集、并集、差集sinter sunion sdiff

    sinter key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的交集。不存在的 key 被视为空集。

    sunion key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的并集。不存在的 key 被视为空集。

    sdiff key [key ...]:返回一个集合的全部成员,该集合是所有给定集合之间的差集。不存在的 key 被视为空集。

 

Redis的值value(数据结构类型)的更多相关文章

  1. Redis所支持的数据结构

    1.启动Redis2.Redis所支持的数据结构 2.1.Redis常用操作 2.2.String类型及操作 2.3.Hash类型及操作 2.4.List类型及操作 2.5.Set类型及操作 2.6. ...

  2. redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型

    Redis有5中数据结构,他们是键值对中的值,对于键来说,有一些通用的命令: 一.查看所有键 keys * 二.获取键总数:dbsize 三.检查键是否存在 exists 如果存在返回1,不存在返回0 ...

  3. redis学习笔记-04:redis五大数据结构类型

    redis的命令大全网站:http://redisdoc.com/ 一.redis五大数据类型 1.String(字符串).Hash(哈希,类似Java里的Map).List(列表).Set(集合)和 ...

  4. Redis的5种数据结构

    Redis可以存储可以存储键与5种不同数据结构类型之间的映射. 五种结构类型为:STRING(字符串).LIST(列表).SET(集合).HASH(散列).ZSET(有序集合). 1.字符串类型Str ...

  5. Redis中5种数据结构的使用场景介绍

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...

  6. Redis系列一之数据结构

    一.Redis简介 redis是一个高性能的key-value非关系数据库,它可以存键(key)与5种不同类型的值(value)之间的映射(mapping),支持存储的value类型包括:String ...

  7. Redis中7种集合类型应用场景

    StringsStrings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...

  8. Redis中7种集合类型应用场景&redis常用命令

    Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ...

  9. redis中5种数据结构的使用

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

随机推荐

  1. Linux的内存分页管理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载 内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存 ...

  2. 如何扩展分布式日志组件(Exceptionless)的Webhook事件通知类型?

    写在前面 从上一篇博客高并发.低延迟之C#玩转CPU高速缓存(附示例)到现在又有几个月没写博客了,啥也不说,变得越来越懒了,懒惰产生了拖延后遗症. 最近一周升级了微服务项目使用的分布式日志组件Exce ...

  3. sun.misc.Unsafe 详解

    原文地址 译者:许巧辉 校对:梁海舰 Java是一门安全的编程语言,防止程序员犯很多愚蠢的错误,它们大部分是基于内存管理的.但是,有一种方式可以有意的执行一些不安全.容易犯错的操作,那就是使用Unsa ...

  4. Axure RP8 注册码

    升级了 8.1.0.3381版本后,需要使用下面这组注册码 License:zdfansKey:fZw2VoYzXakllUuLVdTH13QYWnjD6NZrxgubQkaRyxD5+HNMqdr+ ...

  5. Javascript的内存泄漏分析

    作为程序员(更高大尚的称谓:研软件研发)的我们,无论是用Javascript,还是.net, java语言,肯定都遇到过内存泄漏的问题.只不过他们都有GC机制来帮助程序员完成内存回收的事情,如果你是C ...

  6. TensorFlow从1到2(五)图片内容识别和自然语言语义识别

    Keras内置的预定义模型 上一节我们讲过了完整的保存模型及其训练完成的参数. Keras中使用这种方式,预置了多个著名的成熟神经网络模型.当然,这实际是Keras的功劳,并不适合算在TensorFl ...

  7. 小步快跑的公司可以最简化操作直接通过log4net将日志写入ElasticSearch

     很多小步快跑的公司,开发人员多则3-4个,面对巨大业务压力,日连夜的赶着上线,快速试错,自然就没时间搭建一些基础设施,比如说logCenter,但初期 项目不稳定,bug又多,每次都跑到生产去找日志 ...

  8. 【干货分享】可能是东半球最全的.NET Core跨平台微服务学习资源

    如果你发现还有西半球的资源,烦请相告,不胜感谢! 一..NET Core基础 微软英文官网 .NET Core 微软中文官网 GitHub 用ASP.NET内核和Azure构建现代Web应用程序 博客 ...

  9. Java虚拟机三:OutOfMemoryError异常分析

    根据Java虚拟机规范,虚拟机内存中除过程序计数器之外的运行时数据区域都会发生OutOfMemoryError(OOM),本文将通过实际例子验证分析各个数据区域OOM的情况.为了更贴近生产,本次所有例 ...

  10. js初级入门

    javascript的数据类型 (symbol)一.原始数据类型 或 基本数据类型 6种 1,undefined (1,申明未赋值,2,函数没有返回值)2,null (空,不存在)3,number ( ...