使用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':null,
    'member2':null
}

类似js中的对象,它每一个元素的键值称为成员(member),键值是没有的,这里只是为了符合js对象的写法才设为null。它并不会按照任何顺序排列里面的成员,所以无法通过指定下标(如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...


黒之染
几年半个人练习生,喜欢ctrl c、ctrl v、delete

两年半个人练习生,喜欢ctrl+c/ctrl+v/delete

3.1k 声望
46 粉丝
0 条评论
推荐阅读
jest如何执行单组测试用例
假如有这个文件tests/test.test.ts: {代码...} 我只想运行里面的t2,则可以这样: {代码...} 跨级别之间用空格分隔即可。相关文档:[链接]

黒之染2阅读 1.6k

Redis的线程模型和事务
我原本只是想学习Redis的事务,但后来发现,Redis和传统关系型数据库的事务在ACID的表现上差异很大。而要想详细了解其中的缘由,就离不开Redis独特的单线程模型,因此本文将二者联系在一起讲解。

KerryWu6阅读 5.9k评论 2

Redis分布式锁的实现
很多新手将 分布式锁 和 分布式事务 混淆,个人理解:锁 是用于解决多程序并发争夺某一共享资源;事务 是用于保障一系列操作执行的一致性。我前面有几篇文章讲解了分布式事务,关于2PC、TCC和异步确保方案的实现...

KerryWu4阅读 6.8k评论 2

详解Redisson分布式限流的实现原理
  我们目前在工作中遇到一个性能问题,我们有个定时任务需要处理大量的数据,为了提升吞吐量,所以部署了很多台机器,但这个任务在运行前需要从别的服务那拉取大量的数据,随着数据量的增大,如果同时...

xindoo3阅读 868

封面图
又一款内存数据库横空出世,比 Redis 更强,性能直接飙升一倍!杀疯了
KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份...

民工哥4阅读 796评论 1

封面图
redis 学习笔记
一 搭建 {代码...} 二 数据类型,常用操作命令 {代码...} {代码...} 三 redis常用命令 {代码...} 四 Redis高级应用 {代码...} 五 PHP-REDIS使用 {代码...} 六 BitMap 教程 {代码...}

hufeng2阅读 2.2k

1.5万字总结 Redis 常见面试题&知识点
Redis 是一个基于 C 语言开发的开源数据库(BSD 许可),与传统数据库不同的是 Redis 的数据是存在内存中的(内存数据库),读写速度非常快,被广泛应用于缓存方向。并且,Redis 存储的是 KV 键值对数据。

JavaGuide3阅读 1.1k

封面图

两年半个人练习生,喜欢ctrl+c/ctrl+v/delete

3.1k 声望
46 粉丝
宣传栏