Redis实用指令(二)——Hash
2017-05-12 12:04
375 查看
这里说说Redis中的Hash存储,这块我也是最近才开始接触。我的理解就是Hash可以看成一个简单的关系型数据库的表,这个表有三个字段:key、field、value。其中key和field作为这张表的联合主键,value是我们比较关心的值,key是第一主键,field作为副主键。Redis可以对key单独操作,但是对field操作的时候必须先指定key。所以其主从关系为:key(第一主键)→field(副键)→value(值)。
带着上面的思路咱们来看看Redis中hash的指令。
HDEL key field [field …]:删除一个或多个hash的field。简单来讲就是根据两个字段(key)来删除一条数据,看成sql中的多条件删除更容易理解,Hash中的field基本都可以这样理解。
HEXISTS key field:返回hash里面key的field是否存在的标志。(中文官网说是返回key是否存在的标志,这是不对的,是key下field是否存在。对比了下英文官网是翻译的错误。)
HGET key field:获取hash中field的值。
HGETALL key:从hash中读取多有的field和value。
HINCRBY key field increment:给hash中field的值增加一个给定的数字,该value必须是数字。
HINCRBYFLOAT key field increment:给hash中field的值增加一个给定的浮点数。
HKEYS key:获取某hash下所有的field。这里我用*的时候居然什么都查不到,所以这里只能针对一个hash的key操作。
HLEN key:返回 key 指定的哈希集包含的字段的数量。通俗的说就是hash中某key对应了多少field.
HMGET key field [field …]:返回 key 指定的哈希集中指定字段的值。这个可以同时查询多个field的值,可以跟hget对比下。
HMSET key field value [field value …]:同时设置多个field的值。
HSET key field value:设置hash中一个field的值。
HSETNX key field value:设置hash中一个field的值,只有当该field不存在时才有效。
HSTRLEN key field:返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.
HVALS key:返回 key 指定的哈希集中所有字段的值。
Redis中文官网指令:http://www.redis.cn/commands.html
英文官网指令:https://redis.io/commands
带着上面的思路咱们来看看Redis中hash的指令。
HDEL key field [field …]:删除一个或多个hash的field。简单来讲就是根据两个字段(key)来删除一条数据,看成sql中的多条件删除更容易理解,Hash中的field基本都可以这样理解。
redis> HSET myhash field1 "foo" (integer) 1 redis> HDEL myhash field1 (integer) 1 redis> HDEL myhash field2 (integer) 0 redis>
HEXISTS key field:返回hash里面key的field是否存在的标志。(中文官网说是返回key是否存在的标志,这是不对的,是key下field是否存在。对比了下英文官网是翻译的错误。)
redis> HSET myhash field1 "foo" (integer) 1 redis> HEXISTS myhash field1 (integer) 1 redis> HEXISTS myhash field2 (integer) 0 redis>
HGET key field:获取hash中field的值。
127.0.0.1:6379[1]> hget myhash myfield "kun" 127.0.0.1:6379[1]>
HGETALL key:从hash中读取多有的field和value。
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HGETALL myhash 1) "field1" 2) "Hello" 3) "field2" 4) "World" redis>
HINCRBY key field increment:给hash中field的值增加一个给定的数字,该value必须是数字。
redis> HSET myhash field 5 (integer) 1 redis> HINCRBY myhash field 1 (integer) 6 redis> HINCRBY myhash field -1 (integer) 5 redis> HINCRBY myhash field -10 (integer) -5 redis>
HINCRBYFLOAT key field increment:给hash中field的值增加一个给定的浮点数。
redis> HSET mykey field 10.50 (integer) 1 redis> HINCRBYFLOAT mykey field 0.1 "10.6" redis> HSET mykey field 5.0e3 (integer) 0 redis> HINCRBYFLOAT mykey field 2.0e2 "5200" redis>
HKEYS key:获取某hash下所有的field。这里我用*的时候居然什么都查不到,所以这里只能针对一个hash的key操作。
127.0.0.1:6379[1]> hkeys * (empty list or set) 127.0.0.1:6379[1]> hkeys myhash 1) "myfield" 127.0.0.1:6379[1]>
HLEN key:返回 key 指定的哈希集包含的字段的数量。通俗的说就是hash中某key对应了多少field.
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HLEN myhash (integer) 2 redis>
HMGET key field [field …]:返回 key 指定的哈希集中指定字段的值。这个可以同时查询多个field的值,可以跟hget对比下。
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HMGET myhash field1 field2 nofield 1) "Hello" 2) "World" 3) (nil) redis>
HMSET key field value [field value …]:同时设置多个field的值。
redis> HMSET myhash field1 "Hello" field2 "World" OK redis> HGET myhash field1 "Hello" redis> HGET myhash field2 "World" redis>
HSET key field value:设置hash中一个field的值。
HSETNX key field value:设置hash中一个field的值,只有当该field不存在时才有效。
redis> HSETNX myhash field "Hello" (integer) 1 redis> HSETNX myhash field "World" (integer) 0 redis> HGET myhash field "Hello" redis>
HSTRLEN key field:返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.
redis> HMSET myhash f1 HelloWorld f2 99 f3 -256 OK redis> HSTRLEN myhash f1 (integer) 10 redis> HSTRLEN myhash f2 (integer) 2 redis> HSTRLEN myhash f3 (integer) 4 redis>
HVALS key:返回 key 指定的哈希集中所有字段的值。
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HVALS myhash 1) "Hello" 2) "World" redis>
Redis中文官网指令:http://www.redis.cn/commands.html
英文官网指令:https://redis.io/commands
相关文章推荐
- Redis实用指令(三)——List
- Redis实用指令(一)
- Redis实用指令(四)——Set
- Spring4.0整合Redis实用示例
- redis的Windows安装和一些常用指令
- Spring Data Redis(Hash mapping)
- [redis数据结构]之 hash类型
- Redis 哈希(Hash)
- 超实用的Android手机指令大全
- Redis系列-存储篇hash主要操作函数小结
- Redis数据类型--hash
- Redis初探03——Redis的hash数据类型及操作
- redis删除hash中特定key
- 实用Redis操作类
- 基于redis(key分段,避免一个key过大) 和db实现的 布隆过滤器(解决hash碰撞问题)
- Redis相关指令文档
- Linux入侵检查实用指令
- redis:hash数据类型与操作
- redis:hash数据类型与操作
- Redis 哈希(Hash)