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. Oracle执行计划学习笔记

    目录 一.获取执行计划的方法 (1) explain plan for (2) set autotrace on (3) statistics_level=all (4) dbms_xplan.dis ...

  2. Vue 进阶之路(五)

    之前的文章我们说了一下 vue 的样式绑定,这篇文章来介绍一下 vue 中的条件渲染,先看下面的代码: <!DOCTYPE html> <html lang="en&quo ...

  3. TensorFlow从1到2(六)结构化数据预处理和心脏病预测

    结构化数据的预处理 前面所展示的一些示例已经很让人兴奋.但从总体看,数据类型还是比较单一的,比如图片,比如文本. 这个单一并非指数据的类型单一,而是指数据组成的每一部分,在模型中对于结果预测的影响基本 ...

  4. Java8新特性之二:方法引用

    上一节介绍了Java8新特性中的Lambda表达式,本小节继续讲解Java8的新特性之二:方法引用.方法引用其实也离不开Lambda表达式. 1.方法引用的使用场景 我们用Lambda表达式来实现匿名 ...

  5. SpringBoot进阶教程(二十四)整合Redis

    缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力.Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非 ...

  6. ES 集群上,业务单点如何优化升级?

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一.ES 基础 ...

  7. Promise(避免金字塔回调)

    前后端分离开发,前端通过接口获取数据,但是有的页面不止一个接口,就会出现金字塔回调,可以通过 Promise 封装请求. request-data.js: function reqData(postu ...

  8. 基于Vue2-Calendar改进的日历组件(含中文使用说明)

    一,前言 我是刚学Vue的菜鸟,在使用过程中需要用到日历控件,由于项目中原来是用jQuery写的,因此用了bootstarp的日历控件,但是配合Vue实在有点蛋疼,不够优雅…… 于是网上搜了好久找到了 ...

  9. 使用Fiddler获取OAuth2认证的access token时候返回502

    微软动态CRM专家罗勇 ,回复322或者20190402可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 我这里Fiddler的Composer功能来获取OAuth2 认 ...

  10. sqlserver—数据完整性(理论篇)

    数据完整性主要指的是数据的精确性和可靠性,目的就是为了防止数据库中存放的数值,以及字符具有合法性(即按照管理员定义的规则进行存放) 分为以下四类: 实体完整性 实体完整性要求每一个表中的主键字段都不能 ...