资讯专栏INFORMATION COLUMN

Redis 数据类型

Flands / 3074人阅读

摘要:简介是一个速度非常快的非关系数据库它可以存储键与种不同两类型的值之间的映射可以将存储在内存中的键值对持久到硬盘可以使用复制特性来扩展读性能还可以使用客户端分片来扩展写性能分片分片是一种将数据划分为多个部分的方法对数据的划分可以基于键包含的基

Redis 简介

Redis 是一个速度非常快的非关系数据库, 它可以存储键与 5 种不同两类型的值之间的映射. 可以将存储在内存中的键值对持久到硬盘, 可以使用复制特性来扩展读性能, 还可以使用客户端分片来扩展写性能.

分片
分片是一种将数据划分为多个部分的方法, 对数据的划分可以基于键包含的 ID, 基于键的散列值, 或者基于以上两种的某种组合.

通过对数据进行分片, 用户可以将数据存储到多台机器里面, 也可以从多台机器里面获取数据, 这种方法在解决某些问题时可以获得线性级别的性能提升.

Redis 实现了主从复制特性: 执行复制的从服务器会连接上主服务器, 接收主服务器发送的整个数据库的初始副本; 之后主服务器执行的写命令, 都会被发送给所有连接着的从服务器去执行, 从而实时地更新从服务器的数据集.

数据类型 Redis 中的字符串

STRING 可以是字符串, 整数或者浮点数. 对整个字符串或者字符串的其中一部分执行操作; 对整个数和浮点数执行自增或者自减操作.

三个简单的例子:

set key value (如果存在就是修改, 不存在则是添加)
get key (通过键获取值)
del key (删除, 适用于所有类型)
Redis 中的列表

LIST 一个链表, 链表上的每个节点都包含了一个字符串. 从链表的两端推出或弹出元素; 根据偏移量对链表进行修剪; 读取单个或多个元素; 根据值查找或移除元素.

列表 (链表) 是有序的.  另外获取元素时, 元素下标是从 0(零) 开始

几个简单的例子:

LPUSH 从左端插入元素.
RPUSH 从右端插入元素.
LPOP 从列表的左端弹出一个值, 并返回弹出的值(会移除元素).
RLOP 从列表的右端弹出一个值, 并返回弹出的值(会移除元素).
LRANGE 获取列表在给定范围上的所有值. lrange key 0 -1 表示从零开始获取到最后.
LINDEX  获取列表在给定位置上的单个元素.
Redis 中的集合

SET 包含字符串的无序收集器, 并且被包含的每个字符串都是不可重复的. 添加, 获取, 移除单个儿元素; 检查一个元素是否存在集合中; 计算交集, 并集, 差集; 从集合里面随机获取元素.

集合中的所有元素都是无序不可重的.

几个简单的例子:

sadd 将元素添加到集合, 返回添加成功的元素个数.
smembers 返回集合包含的所有元素.
sismember 检查指定元素是否在集合中, 如果存在返回1, 否则返回0.
srem 如果给定的元素存在集合中, 就移除, 返回被移除元素的数量.
Redis 中的散列

HASH 包含键值对的无序散列表. 添加, 获取, 移除单个键值对或获取所有键值对.

我们可以把 Java 中的 map 集合看做是 redis 中的散列. 键为 String, 值为 Object, 也就是说散列适合存储对象.

散列中的键(field)都是唯一并且是无序排列的, 没一个键对应一个值.

几个简单的例子:

hset 如果给定的哈希表并不存在, 那么一个新的哈希表(散列). 如果域 field (键)已经存在于哈希表中, 那么它的旧值将被新值 value 覆盖.
hget 默认情况下返回给定域的值. 如果给定域不存在于哈希表中, 又或者给定的哈希表并不存在, 那么命令返回 ```nil```.
hgetall 返回散列中所有的域和值.
hdel 移除散列中的域.
Redis 中的有序集合

ZSET 字符串成员与浮点数分值之间的有序映射, 元素的排列顺序由分值的大小决定. 添加, 获取, 删除单个元素; 根据分值范围或者成员来获取元素.

有序集合和散列一样, 都是用于存储键值对: 有序集合的键被称为成员, 每个成员都是各不相同的; 而有序集合的值被称为分值, 分值必须为浮点数.

可以根据成员访问元素, 也可以根据分值以及分值的排列顺序来访问元素的结构.

几个简单的例子:

zadd 将一个带有给定分值的成员添加到有序集合里面.
zrange 根据元素在有序排列中所处的位置, 从有序集合里面获取多个元素.
zrangebyscore 获取所有元素.
zrem 移除元素

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37270.html

相关文章

  • redis 学习笔记

    摘要:集合集合是等命令的操作对象它使用和两种方式编码中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是。 这篇 redis 学习笔记主要介绍 redis 的数据结构和数据类型,并讨论数据结构的选择以及应用场景的优化。 redis 是什么? Redis是一种面向键/值对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。 Redis 数据结构 动态字符...

    Batkid 评论0 收藏0
  • redis 学习笔记

    摘要:集合集合是等命令的操作对象它使用和两种方式编码中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是。 这篇 redis 学习笔记主要介绍 redis 的数据结构和数据类型,并讨论数据结构的选择以及应用场景的优化。 redis 是什么? Redis是一种面向键/值对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。 Redis 数据结构 动态字符...

    draveness 评论0 收藏0
  • 数据系列——Redis学习笔记

    摘要:数据类型之集合的是类型的无序集合。集合中添加元素集合中的元素是不能重复如果添加的已经存在在中则返回不存在则返回数据类型之有序集合和一样也是类型元素的集合且不允许重复的成员。不同的是每个元素都会关联一个类型的分数。 1. Redis的简介    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理 它支持字符串、哈希表、列表、集合、有序集合...

    Mr_houzi 评论0 收藏0
  • 一看就能懂的Redis基础教程

    摘要:的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。数据类型支持五种数据类型字符串,哈希,列表,集合及有序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是。的成员是唯一的但分数却可以重复。 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个...

    clasnake 评论0 收藏0
  • 一看就能懂的Redis基础教程

    摘要:的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。数据类型支持五种数据类型字符串,哈希,列表,集合及有序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是。的成员是唯一的但分数却可以重复。 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个...

    kel 评论0 收藏0
  • Redis 概念以及底层数据结构

    摘要:但为了提高存储效率与程序执行效率,每种对象的底层数据结构实现都可能不止一种。应该是新增的数据结构在中是没有的。 Redis 简介 REmote DIctionary Server(Redis) 是一个由SalvatoreSanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-V...

    terro 评论0 收藏0

发表评论

0条评论

Flands

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<