redis数据类型之set,zset,hash

  上一篇说了string和list两种数据类型,现在说说剩下的几种数据类型;

  继续敲命令每一个命令,害╮(╯_╰)╭

1.set

  这个就类似于java中的Set<Set<T>>,特点是:每一个set中元素无序,而且不能重复

  sadd: 没有指定set就创建一个set,然后向其中添加元素

  smembers: 遍历指定的set中所有元素

  scard: 返回指定set中元素的个数

  spop:随机移除set中一个元素,也可以指定数量,一次随机移除多个;这个命令感觉没啥用....

  smove:可以让元素在两个set之间移动,注意,下图的newLanguage这个set会自动创建的

  srem:删除set中指定的元素

  sismember: 判断集合中是否有指定元素

  srandmember: 随机返回一个元素,只是返回,不会对set中元素有 任何修改操作

  sdiff: 这个命令很容易理解,就是去掉交集,但是不会对原有的set做任何修改,返回的数据是前面的集合为准 ;

  注意,可以接多个set,例如sdiff set1 set2 set3,以set1为基准,首先去掉set1和set2的交集,然后去掉set1和set3的交集

  sinter: 求交集

  sunion: 求并集

2.zset

  这个zset和set的区别就是,set中的数据是无序的,而zset中是有序的,就好像jdk中Set和TreeSet一样;

  下图中其实和Set差不多,只不过在set中每一个元素中都有一个分数,就像打分一样,我们每丢进去一个元素都要给它打分,然后排序就是根据分数进行排序的

  

  zadd: 常见zset,并给添加的元素打分

  zrange: 根据分数进行排序

  zrangebyscore: 查找分数在某个区间的所有元素,还可以跟sql一样使用limit进行分页

  zcard: 查看集合中元素的个数;

  zrank: 返回一个元素在zset中的排名

  zrevrank: 返回倒着数的排名

  zscore: 查看某个元素的分数

  zrem: 删除某个元素

  zincrby: 给某个元素加分,通过这个命令可以实现一个排行榜的功能,比如每次给用户的分数加一,然后使用zrange/zrevrange就能获取排行榜

3.hash

  hash就当作是java中的Map<String,Map<String,Object>>,

  hset: 创建一个hash类型,然后设置键值对

  hget: 向指定的hash中获取某个键对应的值

  hgetall: 获取指定的hash中所有的键值对

  hdel: 删除某个hash中的指定的键值对

  hexists: 判断hash中的指定键值对是否存在

  hkeys: 获取某个hash中所有的键

  hvals: 获取某个hash中所有的值

  hmset: 在一个hash中同时设置多个键值对

  hmget: 在一个hash中同时取出多个键对应的值

  hsetnx: 有指定的键则啥也不变,没有那个键就添加键值对;

  hincrby: 给hash中的某个指定的键对应的值加上一个数字

(0)

相关推荐

  • redis初识

    redis介绍 redis是什么 redis是一种基于键值对的NOsql数据库,与很多键值对数据库不同,redis中的值string,hash,list,set,zset,geo等多种数据机构和算法组 ...

  • Redis学习笔记:Redis简介

    一.NoSQL和关系型数据库区别 NoSQL非关系型数据库:Redis.MongoDB.HBase等,基于Key-Value存储,采用命令操作. 关系型数据库:Oracle.MySQL.DB2.SQL ...

  • Redis 数据结构

    一.Redis简介 Redis是一款基于key-value的高性能NoSQL数据库,开源免费,遵守BSD协议.支持string(字符串) . hash(哈希) .list(列表) . set(集合) ...

  • 3、Redis-数据类型详解(string,list,set,sort set,hash)

    Redis数据类型-string string为最简单的类型,与Memcached一样的类型,一个key对应一个value,其支持的操作与Memcached的操作类似,它的功能更丰富.设置可以存二进制 ...

  • redis中hash数据类型

    remoteSelf:1>hset website google "www.google.com""1"remoteSelf:1>hget webs ...

  • 学习下Redis这个核心数据类型

    string 字符串 tring 类型是二进制安全的,即 string 中可以包含任何数据. Redis 中的普通 string 采用 raw encoding 即原始编码方式,该编码方式会动态扩容, ...

  • C# Redis五种数据类型的操作--简易易懂

    前段时间学习了Redis,一直在忙着工作和一些其他的事情,这两天有空了,就把这学习到的技术分享出来给大家,谢谢 Redis是什么? Redis的特点 Redis使用场景 Redis数据类型 一..Re ...

  • Redis分布式缓存系列(三)- Redis中的Hash类型

    本系列将和大家分享Redis分布式缓存,本章主要简单介绍下Redis中的Hash类型. 散列Hash:类似dictionary,通过索引快速定位到指定元素的,耗时均等,跟string的区别在于不用反序 ...

  • Redis 设计与实现 6:五大数据类型之列表

    列表对象有 3 种编码:ziplist.linkedlist.quicklist. ziplist 和 linkedlist 是 3.2 版本之前的编码. quicklist 是 3.2 版本新增的编 ...

  • 【Redis】基本数据类型及命令操作(超详细)

    一.String 1.1 概述 1.2 相关命令列表 1.3 命令示例 二.List 2.1 概述: 2.2 相关命令列表: 2.3 命令示例: 2.4 链表结构的小技巧: 三.Hashes 3.1 ...

  • 一文搞定Redis五大数据类型及使用场景

    Redis 是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他 ...

  • redis五大数据类型使用场景

    Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的 ...

  • Redis分布式锁升级版RedLock及SpringBoot实现

    分布式锁概览 在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式.但是现在 ...