`
bigboy
  • 浏览: 167889 次
  • 性别: 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"

 

分享到:
评论

相关推荐

    redis桌面链接工具redis-desktop

    支持多种数据类型的操作,包括字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)等 执行Lua脚本以及监控Redis的性能 导出和导入Redis的数据 多数据库切换与浏览 实时更新...

    Redis Essentials

    We start off by explaining the basics of Redis followed by the various data types such as Strings, hashes, lists, and more. Next, Common pitfalls for various scenarios are described, followed by ...

    Redis-7.0.12-Windows-x64

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

    redis安装包3.0

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

    分布式缓存技术Redis在C#中的使用

    Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增...

    redis可视化工具、免费.中文

    redis可视化工具、中文版、完全...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    redis获取命令字典的方法及全部的group命令.txt

    Redis命令十分丰富,包括的命令组有Cluster、Connection、Geo、Hashes、HyperLogLog、Keys、Lists、Pub/Sub、Scripting、Server、Sets、Sorted Sets、Strings、Transactions一共14个redis命令组两百多个redis命令。...

    redis-5.0.5.tar.gz

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

    redis6.0.9.rar

    它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。...

    Redis in Action

    Because Redis accepts hashes, strings, lists, and other structures as values, you can expand the key-value idea to a wider range of use cases. Redis works with in-memory datasets to provide lightning...

    redis-2.4.7

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志...Redis支持诸如列表、集合或有序集合的交集、并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。

    java大数据内容_8Redis、Thrift、Hadoop2

    1 Redis安装、命令行及开发 ...Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)等数据类型。对于这些数据类型,你可以执行原子操作。

    windows版redis4

    它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。...

    redis-3.0.1 和 RedisDesktopManager win-64 版本

    它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。...

    redis-6.0.3-win64.7z

    It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in ...

    Redis在C#中的使用

    Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增...

    redis基础资料

    Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作...

    redis可视化工具安装包.7z

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

    Redis系统性介绍.docx

    虽然Redis已经很火了,相信还是有很多同学对...Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。

    redis常问面试题汇总

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

Global site tag (gtag.js) - Google Analytics