Redis 学习笔记(三)之散列类型命令
2017-11-16 15:57
453 查看
转自:http://blog.csdn.net/men_wen/article/details/60873685
在redis.conf文件中,有关hash的配置如下
2
散列类型(hash)的键值是一种字典结构,redis也是采用字典结构已键值对的形式存储数据,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据结构,意思是说,散列类型不能嵌套其他数据结构。
一个散列键值可以包含最多2^32 -1 个字段。
HSET
用于在存储的关键值的散列设置字段。如果键不存在,新的key由哈希创建。如果字段已经存在于哈希值那么将被覆盖。
2
3
4
5
6
HGET
用于获取与字段中存储的键哈希相关联的值。
2
3
4
5
6
HSETNX
用于在存储的关键值的散列设置字段,只有在字段不存在。如果键不存在,新的key会被哈希创建。如果字段已经存在,该操作没有任何影响。
2
2
3
4
5
6
HMSET
命令用于设置指定字段各自的值,在存储于键的散列。此命令将覆盖哈希任何现有字段。如果键不存在,新的key由哈希创建。
2
HMGET
用于获取与存储在键散列指定的字段相关联的值。如果字段中哈希不存在,则nil值被返回。
2
3
4
HGETALL
用于获取存储在键的散列的所有字段和值。在返回的值是每一个字段名后跟其值,所以回复的长度是散列值两倍的大小。
2
3
4
5
6
7
HKEYS
用来获取所有字段名保存在键的哈希值。
2
3
4
HVALS
用于获取在存储于 key的散列的所有值。
2
3
4
HEXISTS
来检查哈希字段是否存在。
2
3
4
HLEN
用于获取包含存储于键的散列的字段的数量。
2
HINCRBY
用于增加存储在字段中存储由增量键哈希的数量。如果键不存在,新的key被哈希创建。如果字段不存在,值被设置为0之前进行操作。
2
3
4
5
6
7
8
9
10
HINCRBYFLOAT
用于增加存储在key的散列值的指定字段中,并且表示为浮点数,由指定的增量。它被设置为0在执行操作之前。如果该字段包含错误类型的值或指定的增量不是可解析为浮点数,那么出错。
2
3
4
HDEL
用于从存储在键散列删除指定的字段。如果没有这个哈希中存在指定的字段将被忽略。如果键不存在,它将被视为一个空的哈希与此命令将返回0。
散列类型
1. hash相关的配置
在redis.conf文件中,有关hash的配置如下hash-max-ziplist-entries 512 //最大字节说为512字节 hash-max-ziplist-value 64 //最多字段数为641
2
2. hash的介绍
散列类型(hash)的键值是一种字典结构,redis也是采用字典结构已键值对的形式存储数据,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据结构,意思是说,散列类型不能嵌套其他数据结构。一个散列键值可以包含最多2^32 -1 个字段。
2. hash相关的命令
HSET 用于在存储的关键值的散列设置字段。如果键不存在,新的key由哈希创建。如果字段已经存在于哈希值那么将被覆盖。
HSET key field value1
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) 11
2
3
4
5
6
HGET
用于获取与字段中存储的键哈希相关联的值。
HGET key field1
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"1
2
3
4
5
6
HSETNX
用于在存储的关键值的散列设置字段,只有在字段不存在。如果键不存在,新的key会被哈希创建。如果字段已经存在,该操作没有任何影响。
HSETNX key field value1
2
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"1
2
3
4
5
6
HMSET
命令用于设置指定字段各自的值,在存储于键的散列。此命令将覆盖哈希任何现有字段。如果键不存在,新的key由哈希创建。
HMSET key field value [field value ...]1
127.0.0.1:6379> HMSET userInfo2 password 987654 email 123456@163.com OK1
2
HMGET
用于获取与存储在键散列指定的字段相关联的值。如果字段中哈希不存在,则nil值被返回。
HMGET key field [field ...]1
127.0.0.1:6379> HMGET userInfo2 uername password email 1) (nil) //不小心写错的username字段,返回为空 2) "987654" 3) "123456@163.com"1
2
3
4
HGETALL
用于获取存储在键的散列的所有字段和值。在返回的值是每一个字段名后跟其值,所以回复的长度是散列值两倍的大小。
HGETALL key1
127.0.0.1:6379> HGETALL userInfo2 1) "username" //键名 2) "hello" //键值 3) "password" //键名 4) "987654" //键值 5) "email" //键名 6) "123456@163.com" //键值1
2
3
4
5
6
7
HKEYS
用来获取所有字段名保存在键的哈希值。
HKEYS key1
127.0.0.1:6379> HKEYS userInfo2 1) "username" 2) "password" 3) "email"1
2
3
4
HVALS
用于获取在存储于 key的散列的所有值。
HVALS key1
127.0.0.1:6379> HVALS userInfo2 1) "hello" 2) "987654" 3) "123456@163.com"1
2
3
4
HEXISTS
来检查哈希字段是否存在。
HEXISTS key field1
127.0.0.1:6379> HEXISTS userInfo2 username (integer) 1 127.0.0.1:6379> HEXISTS userInfo2 user (integer) 01
2
3
4
HLEN
用于获取包含存储于键的散列的字段的数量。
HLEN key1
127.0.0.1:6379> HLEN userInfo2 (integer) 31
2
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 //如果增量的操作对象不是整型变量会出错1
2
3
4
5
6
7
8
9
10
HINCRBYFLOAT
用于增加存储在key的散列值的指定字段中,并且表示为浮点数,由指定的增量。它被设置为0在执行操作之前。如果该字段包含错误类型的值或指定的增量不是可解析为浮点数,那么出错。
HINCRBYFLOAT key field increment1
127.0.0.1:6379> HINCRBYFLOAT userInfo3 salary 100 "100" 127.0.0.1:6379> HINCRBYFLOAT userInfo3 salary 100.123 "200.123"1
2
3
4
HDEL
用于从存储在键散列删除指定的字段。如果没有这个哈希中存在指定的字段将被忽略。如果键不存在,它将被视为一个空的哈希与此命令将返回0。
HDEL key field [field ...]1
127.0.0.1:6379> HDEL userInfo3 reslut (integer) 1 127.0.0.1:6379> HGET userInfo3 reslut (nil)
相关文章推荐
- Redis 学习笔记(三)之散列类型命令
- Redis 学习笔记(二)之字符串类型命令
- Redis 学习笔记(二)之字符串类型命令
- Redis学习笔记2--Redis数据类型及相关命令
- 【学习Redis】- 散列(哈希)类型和常用命令
- Redis学习笔记2--Redis数据类型及相关命令
- Redis学习笔记(3) Redis基础类型及命令之二
- Redis3.0.5学习笔记(二)基础命令与数据类型
- redis学习笔记4--散列类型
- Redis学习笔记之五:散列类型
- Redis 学习笔记--数据类型常用命令
- Redis 学习笔记(二):数据类型与相关命令
- Redis命令拾遗二(散列类型)
- Redis学习笔记3-Redis5个可运行程序命令的使用
- redis学习笔记之list类型
- Redis字符类型和散列类型学习
- Redis学习笔记(一)--redis安装和字符串命令详解
- Redis学习笔记之入门基础知识——五种数据类型
- redis学习笔记二之数据类型
- (原创)c#学习笔记05--变量的更多内容01--类型转换03--使用Convert命令进行显式转焕