`
bigboy
  • 浏览: 169987 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Redis hashes操作

 
阅读更多

Redis hash是一个string类型的field 和value的映射表.它的添加、删除操作都是O(1)(平均)。

hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存

储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新

建一个hash对象时开始是用zipmap(又称为small hash)来存储的。这个zipmap其实并不

是hash table,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据

存储开销。尽管zipmap的添加,删除,查找都是O(n),但是由于一般对象的field 数量都不

太多。所以使用zipmap也是很快的,也就是说添加删除平均还是O(1)。如果field 或者value

的大小超出一定限制后,Redis会在内部自动将zipmap替换成正常的hash实现.  这个限制可

以在配置文件中指定 

hash-max-zipmap-entries 64 #配置字段最多64个 

hash-max-zipmap-value 512 #配置value最大为512字节

 

 

 

redis 127.0.0.1:6379> hset myhash field1 Hello 设置field的值

(integer) 1

redis 127.0.0.1:6379> hsetnx myhash field Hello 如果存在不做操作不存在则进行设置

(integer) 1

redis 127.0.0.1:6379> hsetnx myhash field Hello

(integer) 0

redis 127.0.0.1:6379> hmset myhash field1 Hello field2 World 同时设置多个field的值

OK

redis 127.0.0.1:6379> hget myhash field1 获取field的值

"Hello"

redis 127.0.0.1:6379> hget myhash field2

"World"

redis 127.0.0.1:6379> hget myhash field3

(nil)

redis 127.0.0.1:6379> hmget myhash field1 field2 获取多个field的值

1) "Hello"

2) "World"

redis 127.0.0.1:6379> hset myhash field3 20

(integer) 1

redis 127.0.0.1:6379> hincrby mhash field3 -3 给指定field的值加数

(integer) -3

redis 127.0.0.1:6379> hget mhahs field3

(nil)

redis 127.0.0.1:6379> hget mhash field3

"-3"

redis 127.0.0.1:6379> hincrby myhash field3 -3

(integer) 17

redis 127.0.0.1:6379> hget myhash field3

"17"

redis 127.0.0.1:6379> hexists myhash field1 测试field是否存在

(integer) 1

redis 127.0.0.1:6379> hlen myhash 获得field的数目

(integer) 4

redis 127.0.0.1:6379> hdel myhash field1 删除指定的field

(integer) 1

redis 127.0.0.1:6379> hlen myhash

(integer) 3

redis 127.0.0.1:6379> hkeys myhash 获得hash的所有key值

1) "field"

2) "field2"

3) "field3"

redis 127.0.0.1:6379> hvals myhash获得hash的所有值

1) "Hello"

2) "World"

3) "17"

redis 127.0.0.1:6379> hgetall myhash 获得所有的值和key

1) "field"

2) "Hello"

3) "field2"

4) "World"

5) "field3"

6) "17"

 

分享到:
评论

相关推荐

    php的Redis类操作

    接下来,我们可以执行各种Redis操作: 1. **获取数据**:通过`get`方法获取指定键的值。 ```php $key = 'example_key'; $value = $redis->get($key); echo "Value for key '$key' is: $value\n"; ``` 2. **设置...

    ServiceStack.Redis操作工具类

    3. **基本数据类型操作**:ServiceStack.Redis支持Redis的所有基本数据类型,如字符串(Strings)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)和哈希表(Hashes)。例如,你可以使用`Set`方法添加字符串...

    Redis命令参考手册完整版 中文PDF版.rar_Redis 入门操作_redis pdf_redis.pdf_redis中文

    以上内容只是Redis的部分核心知识点,完整的Redis命令参考手册会包含更详细的操作和使用案例,对于初学者来说,是深入了解和掌握Redis的宝贵资料。配合实践,你可以逐步提升对Redis的理解和使用技能。

    java-Redis操作

    - **哈希(Hashes)**:可以使用`hset`和`hget`操作哈希表。例如:`jedis.hset("myhash", "field", "value")` 和 `String value = jedis.hget("myhash", "field")`。 - **列表(Lists)**:`lpush`向列表头部添加元素...

    redis实战 红豆出品 兄弟连redis

    本知识点将从Redis的基本使用、数据类型及操作、常用命令、高级特性四个方面详细介绍Redis。 一、Redis基本使用 1.1 Key-Value存储系统简介 Key-Value存储系统是一种数据结构,它将数据存储为一系列的键值对。每...

    JAVA连接redis进行操作的DEMO源码.zip

    4. **数据类型操作**: Redis支持五种数据类型:字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。Jedis API提供了对应的方法,例如: - 哈希操作: ```java jedis.hset("hashKey...

    redis-windows-Redis7.0.0.zip

    首先,Redis支持多种数据类型,包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。这些数据类型不仅满足基本的键值存储需求,还能处理更复杂的数据操作,如列表的推入...

    C# Redis操作demo

    以下是对"C# Redis操作demo"的详细解释: 首先,安装StackExchange.Redis库。在Visual Studio或Visual Studio Code中,你可以通过NuGet包管理器或使用.NET CLI命令`dotnet add package StackExchange.Redis`来添加...

    Redis使用+redis工具

    Redis支持丰富的数据类型,包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。 Redis的使用通常涉及以下几个方面: 1. **安装与启动**:首先,你需要下载Redis的源码,通过...

    Redis命令操作.md

    ### Redis 命令操作知识点解析 #### 一、Redis简介 Redis是一个开源的、高性能的键值存储系统,常被用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串(strings)、散列(hashes)、列表(lists)、集合...

    Redis和RedisDesktop

    Redis的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets),这些数据结构提供了多样化的存储和操作方式。例如,字符串可以用来存储简单的键值对;哈希则适用于存储对象,...

    redis-windows-7.2.1.zip

    1. **高性能**:Redis基于内存操作,数据读写速度非常快,支持多种数据结构如字符串(strings)、哈希表(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)。 2. **持久化**:Redis提供了两种持久...

    redis缓存的基本操作

    Redis 支持多种类型的数据结构,包括字符串(Strings)、哈希(Hashes)、列表(Lists)等。 ##### 字符串操作 - **设置与获取**: - `SET key value` 设置指定键的值。 - `GET key` 获取指定键的值。 - **截取字符串...

    redis桌面链接工具redis-desktop

    Redis Desktop Manager(简称RDM)是一款强大的跨平台Redis数据库管理工具,它为用户提供了一个直观且用户友好的图形界面,使得开发者和运维人员能够轻松地连接到Redis服务器并进行高效的操作与管理。 #### 二、...

    redis服务端绿色版64位windows Redis-x64-3.2.100

    这个压缩包“redis服务端绿色版64位windows Redis-x64-3.2.100”包含了在Windows操作系统上运行Redis 3.2.100版本所需的64位组件。 一、Redis简介 Redis是一个开源(BSD许可),基于内存也支持持久化的日志型、Key-...

    Redis-7.0.12-Windows-x64

    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...

    C#操作Redis小Demo

    Redis支持多种数据类型,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。下面是一些常见操作的例子: **1. 存储和获取字符串:** ```csharp IDatabase db = redis....

    Redis链接工具(RedisDesktopManager)

    2. **键值浏览与编辑**:通过可视化的方式展示Redis中的键(keys)和值(values),支持多种数据类型如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)。可以方便地添加...

    Jedis操作redis代码示例

    本文将深入探讨如何使用Jedis进行Redis操作,并通过具体的代码示例来详细解析其API的使用。 首先,我们需要了解如何添加Jedis依赖到项目中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...

    redis操作封装示例

    Redis客户端通常会提供一系列的方法来执行命令,例如`set`用于设置键值,`get`用于获取键值,`hset`和`hget`用于哈希表的操作,`lpush`和`rpop`用于列表操作,`sadd`和`srem`用于集合操作,以及`zadd`和`zrange`用于...

Global site tag (gtag.js) - Google Analytics