Redis 笔记(三)散列类型命令

散列类型

  1. hash相关的配置
    在redis.conf文件中,有关hash的配置如下
hash-max-ziplist-entries 512    //最大字节说为512字节
hash-max-ziplist-value 64   //最多字段数为64

1.2hash的介绍
散列类型(hash)的键值是一种字典结构,redis也是采用字典结构已键值对的形式存储数据,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据结构,意思是说,散列类型不能嵌套其他数据结构。
一个散列键值可以包含最多2^32 -1 个字段。
2. hash相关的命令
HSET
用于在存储的关键值的散列设置字段。如果键不存在,新的key由哈希创建。如果字段已经存在于哈希值那么将被覆盖。

HSET key field value
127.0.0.1:6379> HSET userInfo1 username 'name'
(integer) 1
127.0.0.1:6379> HSET userInfo1 password '12346'
(integer) 1
127.0.0.1:6379> HSET userInfo1 email '123456@qq.com'
(integer) 1

HGET
用于获取与字段中存储的键哈希相关联的值。

127.0.0.1:6379> HGET userInfo1 username
"name"
127.0.0.1:6379> HGET userInfo1 password
"12346"
127.0.0.1:6379> HGET userInfo1 email
"123456@qq.com"

HSETNX
用于在存储的关键值的散列设置字段,只有在字段不存在。如果键不存在,新的key会被哈希创建。如果字段已经存在,该操作没有任何影响。

HSETNX key field value
12



 127.0.0.1:6379> HSETNX userInfo1 username hello
(integer) 0 //uerInfo1已经存在,设置失败,返回0
127.0.0.1:6379> HSETNX userInfo2 username hello
(integer) 1
127.0.0.1:6379> HGET userInfo2 username
"hello"

HMSET
命令用于设置指定字段各自的值,在存储于键的散列。此命令将覆盖哈希任何现有字段。如果键不存在,新的key由哈希创建。

HMGET
用于获取与存储在键散列指定的字段相关联的值。如果字段中哈希不存在,则nil值被返回。

HMSET key field value [field value ...]
127.0.0.1:6379> HMSET userInfo2 password 987654 email 123456@163.com 
OK

HMGET key field [field ...]1



127.0.0.1:6379> HMGET userInfo2 uername password email
1) (nil)        //不小心写错的username字段,返回为空
2) "987654"
3) "123456@163.com"

HGETALL
用于获取存储在键的散列的所有字段和值。在返回的值是每一个字段名后跟其值,所以回复的长度是散列值两倍的大小。
HGETALL key1

127.0.0.1:6379> HGETALL userInfo2
1) "username"       //键名
2) "hello"          //键值
3) "password"       //键名
4) "987654"         //键值
5) "email"          //键名
6) "123456@163.com" //键值

HKEYS
用来获取所有字段名保存在键的哈希值

HKEYS key
1
127.0.0.1:6379> HKEYS userInfo2
1) "username"
2) "password"
3) "email"

HVALS
用于获取在存储于 key的散列的所有值。
HVALS key

127.0.0.1:6379> HVALS userInfo2
1) "hello"
2) "987654"
3) "123456@163.com"

HEXISTS
来检查哈希字段是否存在。

HEXISTS key field
127.0.0.1:6379> HEXISTS userInfo2 username
(integer) 1
127.0.0.1:6379> HEXISTS userInfo2 user
(integer) 0

HLEN
用于获取包含存储于键的散列的字段的数量。

HLEN key
127.0.0.1:6379> HLEN userInfo2
(integer) 3

HINCRBY
用于增加存储在字段中存储由增量键哈希的数量。如果键不存在,新的key被哈希创建。如果字段不存在,值被设置为0之前进行操作。

HINCRBY key field increment1



127.0.0.1:6379> HSET userInfo3 age 18
(integer) 1
127.0.0.1:6379> HINCRBY userInfo3 age 2
(integer) 20
127.0.0.1:6379> HGET userInfo3 age
"20"

127.0.0.1:6379> HINCRBY userInfo2 username 10
(error) ERR hash value is not an integer
//如果增量的操作对象不是整型变量会出错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值