Redis 的数据类型

一些命令需要结合 redis 的数据类型来说。

Redis 4.0 之前有5种数据类型,分别是:字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(zset)。

在 4.0 版本,Redis 新加了一种 stream 的类型。暂且先不说,以后会新开文章具体讲解。

基本知识:

  1. 数据类型不支持嵌套,即所有的类型的元素只能是字符串,不能是散列和集合或者有序集合。
  2. 除了字符串之外,每种数据类型的命令都有一个开头。
    1. 散列(h)
    2. 列表(l)
    3. 集合(s)
    4. 有序集合(z)
    5. stream(x)

字符串

Redis 的字符串使用了 Redis 自己实现的是一个字符串结构叫简单动态字符串:SDS,simple dynamic string

Redis 中的字符串的最大存储是 512M。

并且可以当作数字来使用的。比如 incr、incrby、decr、decrby 都是基于数字的值进行操作的。我们可以通过 incr 来实现一个计数器。或者是自增数字发生器。

散列

散列的底层是用字典实现的。并且其就是一个字典结构。可以构成: field:value 的格式。

如下图所示:

列表

列表底层是使用双向链表实现的。通过列表可以实现队列功能。

通过以下命令可以通过列表实现数组的功能:

lindex key index
lset key index value

rpoplpush 可以实现原子性地将一个数据从表尾放到另一个或者自己的表头。

集合

Redis 中的集合与数学上的集合具有相同的性质,无序且重复。并且 Redis 提供了 diff、inter、union 三种集合操作的命令。

有序集合

有序集合使用跳跃表实现。集合是无序的,并且值不能重复。集合这种数据类型对于很多场景是不适用的。比如说,排行榜。于是 Redis 提供了一种有序集合类型。有序集合是一个每个元素都有一个分值代表在集合中的排行的一种数据结构。如果分值相同,那么按照元素的字典序进行排序。

什么是跳跃表,可以参见这篇文章:http://blog.jobbole.com/111731/

Redis 的常用命令的更多相关文章

  1. Jedis对Redis的常用命令操作

    本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...

  2. Linux下安装redis以及常用命令

    https://blog.csdn.net/zgf19930504/article/details/51850594 安装: 1.获取redis资源 wget http://download.redi ...

  3. 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令

     Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表 ...

  4. 【redis】常用命令

    三.常用命令    1)连接操作命令    quit:关闭连接(connection)    auth:简单密码认证    help cmd: 查看cmd帮助,例如:help quit         ...

  5. Redis(2):常用命令详解

    redis命令不区分大小写 通用命令:1. 获得符合规则的键名列表: keys pattern   其中pattern符合glob风格  ? (一个字符) * (任意个字符) [] (匹配其中的任意一 ...

  6. Redis的常用命令与Java整合及高级应用篇

    一,redis是什么? ​ 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性. ​ 相反非关系型数据库采用key ...

  7. centos7 yum安装redis及常用命令

    redis是什么 Redis是一种基于内存的数据结构存储,可持久化的日志型.Key-Value数据库.使用关系型数据库的站点达到一定并发量的时候,往往在磁盘IO上会有瓶颈,这时候配合redis就有一定 ...

  8. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作

    redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis与其他key-value缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存 ...

  9. Redis简介+常用命令

    Redis=REmote DIctionary Server Redis是一个使用C语言编写的开源数据库,是高性能的key-value数据库,是内存数据库,支持数据持久化. Redis常用数据类型: ...

  10. Redis 实战 —— 04. Redis 数据结构常用命令简介

    字符串 P39 Redis 的字符串是一个有字节组成的序列,可以存储以下 3 种类型的值:字节串(byte string).整数.浮点数. 在需要的时候, Redis 会将整数转换成浮点数.整数的取值 ...

随机推荐

  1. 2019-9-23:渗透测试,基础学习,http协议数据包的认识,html css的认识,笔记

    Burp suite功能模块Dashboard:扫描Proxy:拦截包,代理 drop:放弃Intruder:爆破Decoder:编码,解码repeater:重放comparer:比较 BP,prox ...

  2. NIO-概览

    目录 NIO-概览 目录 前言 什么是NIO 通道 缓冲区 选择器 其他 管道 FileLock 参考文档 NIO-概览 目录 NIO-概览 前言 本来是想学习Netty的,但是Netty是一个NIO ...

  3. 剑指Offer-34.数组中的逆序对(C++/Java)

    题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%10000 ...

  4. 【Android - 自定义View】之自定义颜色渐变的Tab导航栏

    首先来介绍一下这个自定义View: (1)这个自定义View的名称叫做 GradientTab ,继承自View类: (2)这个自定义View实现了颜色渐变的Tab导航栏(仿微信主菜单),用户在左右滑 ...

  5. FBV与CBV 及CBV源码分析

    FBV与CBV 及CBV源码分析 FBV(Function Based View) 基于函数的视图 基于函数的视图,我们一直在用没啥好讲的,就是导入模块调用函数执行业务 CBV(Class Based ...

  6. (Nginx+PHP+MySQL)单机+Redis部署

    链接:Nginx+PHP+MySQL+Redis多机部署 1.lnmp+redis工作机制 2.lnmp+redis操作步骤(lnmp为单机部署) (1)lnmp+redis实战环境 lnmp服务器: ...

  7. <算法基础><排序>三种高级排序——快速排序,堆排序,归并排序

    这三种排序算法的性能比较如下: 排序名称 时间复杂度(平均) 时间复杂度(最坏) 辅助空间 稳定性 快速排序 O(nlogn) O(n*n) O(nlogn) 不稳定 堆排序 O(nlogn) O(n ...

  8. STM32F4 阿波罗寄存器 进阶版LED灯

    上一节通过使用操作地址的方式进行了寄存器的操作,接下来通过两个部分,实现进阶版的操作寄存器(将寄存器的地址进行命名,然后使用名字进行调用  比如商场的A座5楼345号为卖玩具的,我们可以定义地址为sh ...

  9. MySql数据库之单表数据查询

    查询数据 1.查询所有数据: select * from 表名; 2.根据指定条件查询数据:

  10. .net core 3.1简体中文语言包,英文只能提示变成中文!

    .net core 3.1简体中文语言包,英文只能提示变成中文!这个是我自己手动用谷歌翻译翻译的一批文档,已经把.net core3.1完全翻译了,由于是翻译器翻译,所以怕翻译有错漏,所以没有去掉英文 ...