HBase 在键/值映射中使用创建操作

422 阅读4分钟

HBase 在键/值映射中使用创建操作

Redis 是一个简单但功能强大的数据结构服务器,可让您将值存储为简单的键/值对或集合的成员。每个键/值对可以是独立的字符串映射,也可以驻留在集合中。

集合可以是以下任何类型:列表、集合、排序集或哈希。

独立的键/值字符串对就像一个可以接受字符串值的变量。

您可以创建一个 Redis 字符串键/值映射,如下所示:

./redis-cli set akey avalue

您可以确认在 get 命令的帮助下成功创建了该值,如下所示:

./redis-cli get akey

正如预期的那样,响应是 avalue。set 方法与创建或放置方法相同。如果再次调用 set 方法,但这次为键 akey 设置了另一个值,则原始值将替换为新值。尝试以下操作:

./redis-cli set akey othervalue ./redis-cli get akey

正如预期的那样,响应将是新值:anothervalue

但是,熟悉的字符串 set 和 get 命令不能用于 Redis 集合。

例如,使用 lpush rpush 创建并填充列表。可以创建不存在的列表及其第一个成员,如下所示:

./redis-cli lpush list_of_books 'MongoDB: The Definitive Guide'

可用于您可以使用范围操作来验证并查看列表的前几个成员 - 1ist_of_books,如下所示:

./redis-cli lrange list_of_books 0-1

1.“MongoDB:The Definitive Guide”

范围运算使用第一个元素的索引 0 和最后一个元素的索引 -1 来获取列表中的所有元素。

在 Redis 中,当您查询不存在的列表时,它会返回一个空列表,并且不会引发异常。您为不存在的列表运行范围查询 - 如下所示:

./redis-cli lrange mylist 0-1

Redis 返回一条消息:The empty list or set。你可以使用 1push,就像你使用 rpush 将成员添加到 mylist 一样,所以:

./redis-cli rpush mylist 'a member'

现在,mylist 当然不是空的,重复范围查询会显示成员的存在。成员可以添加到左侧或右侧的列表中,也可以从任一方向弹出。这允许您将列表用作队列或堆栈。

对于设置的数据结构,可以使用 SADD 操作添加成员。因此,您可以像这样将“a set number”添加到 aset:

./redis-cli sadd aset 'a set member'

命令行程序将以整数值 1 进行响应,确认它已添加到集合中。重新运行相同的 SADD 命令时,不会再次添加该成员。您可能还记得,根据定义,集合只保存一次值,因此一旦存在,再次添加它就没有意义。您还会注意到程序以 0 响应,这表示未添加任何内容。与集合一样,排序集只存储一个成员一次,但它们也像列表一样具有秩序感。您可以轻松地将“a sset Members”添加到名为 azset 的排序集,如下所示:

./redis-cli zadd azset 1 'a sset member'

值 1 是排序集成员的位置或分数。您可以将另一个成员“sset member 2”添加到此排序集中,如下所示:

./redis-cli zadd azset 4 'sset member 2'

您可以通过运行范围操作(类似于用于列表的操作)来验证值是否已存储。排序集范围命令称为 zrange,您可以请求包含前五个值的范围,如下所示:


./redis-cli zrange azset 0 4 

1.“a sset members”

2.“sset member 2”

当您现在在位置或分数 3 处添加一个值时会发生什么,当您尝试将另一个值添加到位置或分数 4 时会发生什么,该值已经有一个值?

在得分 3 处向 azset 添加一个值,如下所示:

./redis-cli zadd azset 3 'member 3'

并像这样运行 zrange 查询:

./redis-cli zrange azset 0 4

运行结果:

1. “a sset member2.member 33.“sset member 2

再次在位置或得分 3 处添加一个值,如下所示:

./redis-cli zadd azset 3 'member 3 Again'

并像这样运行 zrange 查询:

./redis-cli zrange azset 0 4

显示成员已重新定位以容纳新成员,如下所示:

1. “a sset member2.“member3”

3.member 3 again” 

4.“sset member 2

因此,向排序集添加新成员不会替换现有值,而是根据需要对成员重新排序。

Redis 还定义了哈希的概念,其中成员可以像这样添加:

./redis-cli hset bank account1 2350

./redis-cli hset bank account2 4300

您可以使用 hget 或其 hgetall 命令验证成员是否存在:

./redis-cli hgetall bank

要存储复杂的嵌套哈希,您可以创建一个分层哈希键,如下所示:

./redis-cli hset products: apple fruit 1.35

./redis-cli hset Products: fruit banana 2.20

将数据存储在任何 NoSQL 数据存储中后,您需要访问和检索它。毕竟,保存数据的整个想法是检索它并在以后使用它。


本文正在参加「金石计划 . 瓜分6万现金大奖」