redis中5种数据类型介绍

redis和memcached两种缓存,个人觉得redis更好用,因为它不仅提供了丰富的数据类型,还能保证数据的持久性,下面就来简单的介绍一下redis中常用的几种数据类型。

1. 字符串类型(string)

这是redis中最基本的类型,也是最常用的类型,跟memcached一样,即一个key对应一个值这种。操作也很简单,常用操作命令有get、set、del等。

2. 链表类型(list)

链表类型有点类似于编程语言中的数组一样,可以用一个key存一组数据进去。其实list类型就是一个双向链表,通过lpush、lpop、rpush、rpop这四个命令来向链表的头部插入、移除、尾部插入、移除,这使得list即可以用作栈,也可以用作队列。如下图所示的情景:
redis中list队列

3. 无序集合类型(set)

redis中的set是string类型的无序集合,set元素最大可以包含2的32次方-1个元素。利用set集合类型,我们可以快速取出n个key之间的并集、交集、差集等,从而轻松解决mysql等数据库不容易实现这种运算的缺陷。应用场景:取出两个QQ号中的共同的好友数。

4. 有序集合类型(sorted set)

和set一样,sorted set也是string类型元素的集合,是一个没有重复元素的字符串集合。因为元素是有序的,所以使用有序集合你可以以非常快的速度(O(log(N)))添加,删除和更新元素,它也很擅长排序。应用场景:获取所有用户投票数最高的前10名,等等。

5. 哈希类型(hash)

hash数据类型存储的数据与mysql数据库中存储一条记录极为相似,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其他类型。每一个哈希可以存储超过2的32次方-1个字段-值对。应用场景:存储用户的基本信息,等等。

总结:只有熟练掌握redis各种数据类型的特点之后,才能更好的应用到实际项目中。虽然redis的效率非常高,但是我们还是得非常清楚的理解每种数据类型适合的应用场景,这样才能将redis的优势发挥到极致

时间: 2024-10-26 08:00:43

redis中5种数据类型介绍的相关文章

Redis中5种数据结构的使用场景介绍

这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下. 一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢? String--字符串 Hash--字典

Redis中5种数据结构的使用场景介绍_Redis

一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢? String--字符串 Hash--字典 List--列表 Set--集合 Sorted Set--有序集合 下面我们就来简单说明一下它们各自的使用场景: 1. String--字符串 String 数据结构是简单的 key-

分享下php5类中三种数据类型的区别_php技巧

public: 公有类型 在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中可以能过$obj->var 来调用 public类型的方法或属性 protected: 受保护类型在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中不能通过$obj->var 来调用 protected类型的方法或属性 private:

SqlServer中的UniqueIdentifier数据类型介绍

CREATE TABLE MyUniqueTable    (UniqueColumn   UNIQUEIDENTIFIER      DEFAULT NEWID(),    Characters      VARCHAR(10) ) GO INSERT INTO MyUniqueTable(Characters) VALUES ('abc') INSERT INTO MyUniqueTable VALUES (NEWID(), 'def') GO uniqueidentifier是全局唯一标识

Redis 的几种数据结构&五种数据类型对象

先看几种数据结构 通过分析底层的数据结构,学习如何根据场景选型和设计  1,简单动态字符串     redis使用的字符串SDS有别于C语言中的字符串    a, 结构       free字段为已分配但未使用的空间     len为已使用的空间(不计入'\0')     buf为char数组     b, 与C字符串区别         redis的字符环结构可以理解为将C字符串封装了一层,通过加入的属性字段降低字符串操作的复杂度,提高安全性.         通过len属性可以在常数复杂度获

redis中hash类型介绍和命令详解

在redis中,hash数据类型存储的数据与mysql数据库中存储一条记录极为相似,是一个string类型的field和value的映射表,它特别适合用于存储对象,但字段值只能是字符串,不支持其他类型. Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是 O(1) (平均). hash特别适合用于存储对象.相较于将对象的每个字段存成单个 string类型.将一个对象存 储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象.省内存的原

redis中使用redis-dump导出、导入、还原数据实例

redis的备份和还原,借助了第三方的工具,redis-dump 1.安装redis-dump 复制代码代码如下: [root@localhost tank]# yum install ruby rubygems ruby-devel   //安装rubygems 以及相关包   [root@localhost tank]# gem sources -a http://ruby.taobao.org/   //源,加入淘宝,外面的源不能访问   http://ruby.taobao.org/ a

Python中的几种数据类型

  大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",hello List(列表) 例如:[1,2,3],[1,2,3,[1,2,3],4] Dictionary(字典) 例如:{1:"nihao",2:"hello"} Tuple(元组) 例如:(1,2,3,abc) Bool(布尔) 包括True.False 由于P

SQL中的五种数据类型

数据|数据类型 简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字符串长度小于255的字符. 假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates.当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符--字符串Bill Gates的长度. 现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取