Redis 详解 (三) redis的五大数据类型详细用法

Stella981
• 阅读 430

目录


  我们说 Redis 相对于 Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。本篇博客我们就将介绍这些数据类型的详细使用以及顺带介绍Redis系统的相关命令用法。

  注意:Redis的命令不区分大小写,但是key 严格区分大小写!!!

回到顶部

1、string 数据类型

  string 是Redis的最基本的数据类型,可以理解为与 Memcached 一模一样的类型,一个key 对应一个 value。string 类型是二进制安全的,意思是 Redis 的 string 可以包含任何数据,比如图片或者序列化的对象,一个 redis 中字符串 value 最多可以是 512M。

  string 数据类型在 Redis 中的相关命令:

  表格图片引用:http://www.cnblogs.com/xrq730/p/8944539.html(下同)

  Redis 详解 (三) redis的五大数据类型详细用法

   Redis 详解 (三) redis的五大数据类型详细用法

  PS:上面的 ttl 命令是返回 key 的剩余过期时间,单位为秒。

  上面是 string 类型的基本命令,下面介绍几个自增自减操作,这在实际工作中还是特别有用的(分布式环境中统计系统的在线人数,利用Redis的高性能读写,在Redis中完成秒杀,而不是直接操作数据库。)。

  Redis 详解 (三) redis的五大数据类型详细用法

   Redis 详解 (三) redis的五大数据类型详细用法

回到顶部

2、hash 数据类型

  hash 是一个键值对集合,是一个 string 类型的 key和 value 的映射表,key 还是key,但是value是一个键值对(key-value)。类比于 Java里面的 Map<String,Map<String,Object>> 集合。

   Redis 详解 (三) redis的五大数据类型详细用法

   演示如下:

  Redis 详解 (三) redis的五大数据类型详细用法

回到顶部

3、list 数据类型

  list 列表,它是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边),它的底层实际上是个链表。

  Redis 详解 (三) redis的五大数据类型详细用法

   Redis 详解 (三) redis的五大数据类型详细用法

  Redis 详解 (三) redis的五大数据类型详细用法

回到顶部

4、set 数据类型

  Redis 的 set 是 string 类型的无序集合。

   Redis 详解 (三) redis的五大数据类型详细用法

   Redis 详解 (三) redis的五大数据类型详细用法

  Redis 详解 (三) redis的五大数据类型详细用法

回到顶部

5、zset 数据类型

  zset(sorted set 有序集合),和上面的set 数据类型一样,也是 string 类型元素的集合,但是它是有序的。

  Redis 详解 (三) redis的五大数据类型详细用法

  Redis 详解 (三) redis的五大数据类型详细用法

回到顶部

6、系统相关命令

  Redis 详解 (三) redis的五大数据类型详细用法

回到顶部

7、key 相关命令

  关于 key 的命令应该说是最常用的,需要大家记住。

  Redis 详解 (三) redis的五大数据类型详细用法

   Redis 详解 (三) redis的五大数据类型详细用法

  Redis 详解 (三) redis的五大数据类型详细用法

  这里在介绍一个命令 :

OBJECT ENCODING    key

  这是用来显示这五种数据类型的底层数据结构,下一篇博客我们会详细介绍。

  Redis 详解 (三) redis的五大数据类型详细用法

   上面的命令我们给string 数据类型 k1 复制str,给 k2 复制123,通过 OBJECT ENCODING 显示底层实现的数据类型分别是 embstr 和 int。这到底是什么呢?下篇博客我们会详细介绍的。 

参考文档:http://www.redis.cn/commands.html

     http://www.cnblogs.com/xrq730/p/8944539.html

作者: YSOcean

出处: http://www.cnblogs.com/ysocean/

本文版权归作者所有,欢迎转载,但未经作者同意不能转载,否则保留追究法律责任的权利。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这