使用js的数据类型简单描述redis各个数据类型

名词定义:

key:想在redis中创建任意数据都必须有一个名字,可以通过这个名字来操作这个数据,这篇说明里,这个名字被称为key

字符串 Strings

var key = 'abcd'
var key = 2

类似js中的字符串变量,一个key对应一个字符串,比较简单,如果想存复杂点的数据,可以转为JSON格式后传入 同时它也可以传入整数,然后可以对它做加减,所以它也可以是一个计数器

列表 Lists

var key = ['value1','value2','value3']

类似js中的数组,它每一个元素的键值称为值(value),有下标的概念,可以通过下标获取值,相当于js操作:key[2]。我以前使用它做过消息队列,但等redis5.0出来之后,可以使用Stream来做消息队列,参考:Redis5.0新特性Stream尝鲜

集合(无序) Sets

var key = {
    'member1':0,
    'member2':0
}

类似js中的对象,它每一个元素的键值称为成员(member),键值是没有的,这里只是为了符合js对象的写法才设为0。它并不会按照任何顺序排列里面的成员,所以无法通过指定下标(如key[1])的方法获取指定位置的值。

它没有键值似乎看起来没什么用途,但是有的情况下还是有用的,如:存储白名单/黑名单,这时候只需要知道字符串是否在集合里,就知道它在不在白名单/黑名单了。还能用来存储每天登录的用户uid,此时key中包含当天的时间。

ps. member 也可以设为数字,此时依然是作为字符串来使用,所以不推荐用数字

有序集合 Sorted Sets

  • 有时英文也叫Ordered Sets
var key = {
    'member3':1
    'member8':5,
    'member2':5,
    'member1':10005
}

它每一个元素的键值也称为成员(member),键值称为分数(score)。它的排序就是根据这个分数来,允许相同分数,会采用字典序(Lexicographical)排列相同分数的成员,字典顺序排序用的是二进制,它比较的是字符串的字节数组。

  • ps. member 也可以设为数字,此时依然是作为字符串来使用,所以不推荐用数字
  • ps. score 只能为数字,如果是无法转为数字的字符串,会失败

哈希集 Hashes

  • 有时也翻译成 “哈希”
var key = {
    'field1':'hahaha'
    'field3':5,
    'field2':5,
    'field4':10005
}

它每一个元素的键值称为字段(field),键值称为值(value)。它可以看作是字符串类型的集合。

Stream

5.0新增类型,可用作消息队列,暂时未研究,参考:Redis5.0新特性Stream尝鲜

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/dev...

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏magicsoar

C语言和go语言之间的交互 - C语言中使用go语言,使用的go语言又使用了c语言

一、go语言中使用C语言 go代码中使用C代码,在go语言的函数块中,以注释的方式写入C代码,然后紧跟import “C” 即可在go代码中使用C函数 ? 代码...

398100
来自专栏阿凯的Excel

Python读书笔记17(while与列表、字典)

今天分享利用while函数处理列表和字典,顺便温习一下历史知识 一、论如何将一个列表折腾至另外一个列表!(两个列表是独立的) 论折腾列表有几种方法! 先分...

37750
来自专栏黑泽君的专栏

c语言基础学习08_关于内存管理的复习

============================================================================= 对于...

10510
来自专栏程序员同行者

python3模块: json & pickle

13520
来自专栏java学习

Java基础总结大全(1)

一、基础知识: 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 ...

38950
来自专栏java学习

Java基础总结大全(1)

一、基础知识: 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 ...

466110
来自专栏阮一峰的网络日志

在PHP语言中使用JSON

我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识。

14930
来自专栏java一日一条

Java 泛型一览笔录

泛型(Generics )是把类型参数化,运用于类、接口、方法中,可以通过执行泛型类型调用 分配一个类型,将用分配的具体类型替换泛型类型。然后,所分配的类型将用...

10910
来自专栏Linyb极客之路

并发编程之Synchronized关键字

一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作...

30860
来自专栏逆向技术

C++反汇编第二讲,不同作用域下的构造和析构的识别

               C++反汇编第二讲,不同作用域下的构造和析构的识别 目录大纲:   1.全局(静态)对象的识别,(全局静态全局一样的,都是编译期间...

214100

扫码关注云+社区

领取腾讯云代金券