ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
* `hset key field value`:设置单个`field`(哈希对象的`key`值)。 * `hmset key field1 value1 field2 value2`:设置多个`field`(哈希对象的`key`值)。 * `hsetnx key field value`:将哈希表`key`中域`field`的值设置为`value`,如果`field`已存在,则不执行任何操作。 * `hget key field`:获取哈希表`key`中的域`field`对应的`value`。 * `hmget key field1 field2`:获取哈希表`key`中的多个域`field`对应的`value`。 * `hdel key field1 field2`:删除哈希表`key`中的一个或者多个`field`。 * `hlen key`:返回哈希表`key`中域的数量。 * `hincrby key field increment`:为哈希表`key`中的域`field`的值加上增量`increment`,`increment`可以为负数,如果`field`不是数字则会报错。 * `hincrbyfloat key field increment`:为哈希表`key`中的域`field`的值加上增量`increment`,`increment`可以为负数,如果`field`不是`float`类型则会报错。 * `hkeys key`:获取哈希表`key`中的所有域。 * `hvals key`:获取哈希表中所有域的值。 了解了操作哈希对象的常用命令,我们就可以来验证下前面提到的哈希对象的类型和编码了,在测试之前为了防止其它`key`值的干扰,我们先执行`flushall`命令清空`Redis`数据库。 依次执行如下命令: ~~~sql hset address country china type address object encoding address ~~~ 得到如下效果: ![](https://img.kancloud.cn/19/3d/193d473ed87fbeecc23859e0ef6a245a_611x183.png) 可以看到当我们的哈希对象中只有一个键值对的时候,底层编码是`ziplist`。 接下来修改一下配置文件中的`hash-max-ziplist-entries`参数: 1. 执行`exit`命令退出当前客户端。 2. 执行`sudo vim /etc/redis/redis.conf`进入编辑器,然后找到下图所示参数`hash-max-ziplist-entries`,将`512`修改为`2`,表示当哈希对象中的键值对大于`2`时,就会转换为`hashtable`编码进行存储: ![](https://img.kancloud.cn/8e/fb/8efb26d984315159a29107228b9e932f_591x311.png) 3. 修改之后再重启`Redis`服务,然后重新连接上客户端。 修改完配置之后,再来执行以下命令进行测试: ~~~sql hmset key field1 value1 field2 value2 field3 value3 object encoding key ~~~ 输出之后得到如下结果: ![](https://img.kancloud.cn/0d/9b/0d9b1a07867507384d7ea5cde6b2ba83_652x133.png) 可以看到,编码已经变成了`hashtable`。