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. Spring Boot2 系列教程(二十七)Nginx 极简扫盲入门

    上篇文章和大家聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 还是很懵,因此有了这篇文章,算是一个 Nginx 扫盲入门吧! 基本介绍 Ngi ...

  2. Java程序在内存中运行详解

    目录 Java程序在内存中运行详解 一.JVM的内存分布 二.程序执行的过程 三.只有一个对象时的内存图 四.两个对象使用同一个方法的内存图 五.两个引用指向同一个对象的内存图 六.使用对象类型作为方 ...

  3. scrapy抓取斗鱼APP主播信息

    如何进行APP抓包 首先确保手机和电脑连接的是同一个局域网(通过路由器转发的网络,校园网好像还有些问题). 1.安装抓包工具Fiddler,并进行配置 Tools>>options> ...

  4. wincap linux部署

    1.4.1 linux下安装Winpcap a) 下载Winpcap的源码:https://www.winpcap.org/devel.htm b) 上传源码包“WpcapSrc_4_1_3.zip” ...

  5. Python使用百度地图API根据地名获取相应经纬度

    今天有个需求,要根据地名获取经纬度坐标值. 于是我第一想法:打开百度地图,手动输入地名,获取.显然当地名较少时,可实施.然而,当地名较多时,此方法显然工作量很大. 于是,第二想法:代码获取,请求百度地 ...

  6. 怎么解决js中如滑动到最底端一次操作触发多次

    定义一个布尔类型到标志,处理中将起设置为true ,处理完改完false,逻辑: data{ isInProcessing:false } //逻辑函数过程中: if(isInProcessing){ ...

  7. spring redis学习笔记

    1.下载: https://github.com/MicrosoftArchive/redis/releases,并解压文件; 2.双击redis-server.exe,运行redis服务器; 3.双 ...

  8. 输入URL到页面渲染

    输入网址回车或者刷新页面到页面传染出来的整个流程 DNS 解析 HTTP三次握手 -> TCP/IP连接 浏览器发送请求 服务器返回请求的文件 (html) 浏览器渲染 1. DNS 解析 查找 ...

  9. 2017 ACM/ICPC 沈阳 L题 Tree

    Consider a un-rooted tree T which is not the biological significance of tree or plant, but a tree as ...

  10. 这3步简单搭建Python http服务器 你肯定不会吧?

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:stark张宇 趁着周末的闲暇时光看看Python是什么鬼 给疲倦的 ...