序言
Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个元素,所耗费的时间都是一样的,但是数组中的索引却没有实际意义,他只是一个位置而已。而我们在查找某个元素时,一般都会使用有意义的字段来做索引,这就产生啦dictionary。其实dictionary的实现,就是让key跟下标索引有一定的关系,所实现的,让他的查找算法复杂度变为常数O(1)。
扯完上面的蛋,我来说下今天要说redis中的Hash命令,如果你不懂redis,就从第一篇看跟着来敲一边,别懒,懒啦别人装逼你就装不了啦,哈哈。
redis中hash对单个key/value操作的命令演示
redis中hash的添加命令hset,如果key不存在,创建key,存在,则覆盖原有值
redis 127.0.0.1:6379>hset myhash name Jim —-给key为myset的键值设置键为name值为Jim
redis中hash的查看命令hget
redis 127.0.0.1:6379>hget myhash name —-输出: “Jim”,获取key为myset,键为name的value
redis 127.0.0.1:6379>hset myhash name zlh —-覆盖原有值,值改为zlh替换Jim
redis 127.0.0.1:6379>hget myhash name —输出:”zlh”
redis中hash的获取key包含的field数量的命令hlen
redis 127.0.0.1:6379>hset myhash age 31 — 设置key为myset键为age的value=31
redis 127.0.0.1:6379>hlen myhash —输出为2,key为myset的field数量为2
redis中判断指定key中指定field是否存在的命令hexists,存在返回1,不存在返回0
redis 127.0.0.1:6379>hexists myhash name —返回1,说明存在
redis 127.0.0.1:6379>hexists myhash name1 —返回0,说明不存在
redis中hash删除命令hdel,删除一个或多个指定的字段
redis 127.0.0.1:6379>hset myhash sex nan —-添加数据
redis 127.0.0.1:6379>hset myhash issingle yes —-添加数据
redis 127.0.0.1:6379>hset myhash hobby sports —-添加数据
redis 127.0.0.1:6379>hdel myhash hobby —-删除单个数据,filed为hobby的数据
redis 127.0.0.1:6379>hdel myhash issingle sex —删除多个数据,filed为issingle和sex的两条数据
redis中hash如果key或field不存在插入有效,否则不采取操作的命令hsetnx
redis 127.0.0.1:6379>hsetnx myhash sex nan —设置myhash,field为sex的value为nan,成功返回1,因为原来不存在sex这个字段
redis 127.0.0.1:6379>hsetnx myhash sex nv —设置myhash,field为sex的value为nv,不成功返回0,因为原来存在sex这个字段并且有值
redis 127.0.0.1:6379>hget myhash sex –输出”nan”
redis中hash中的value为数值时操作增减的命令hincrby
redis 127.0.0.1:6379>del myhash —删除该键
redis 127.0.0.1:6379>hset myhash age 31 —设置key为myhash的键为age值为31
redis 127.0.0.1:6379>hincrby myhash age 10 —给key为myhash,键为age的值加10,输出结果为41
redis 127.0.0.1:6379>hincrby myhash age -10 —给key为myhash,键为age的值减去10,输出结果为31
redis中hash批量操作key/value的命令演示
批量添加key/value的命令hmset
redis 127.0.0.1:6379>del myhash –删除该键
redis 127.0.0.1:6379>hmset myhash name zlh age 31 issingle no —-给key为myhash的hash添加name=zlh,age=31,issingle=no的多个键值
批量获取key/value的命令hmget
redis 127.0.0.1:6379>hmget myhash name age issingle —-输出结果为:zlh 31 no
根据myhash键获取所有的字段及value的命令hgetall
redis 127.0.0.1:6379>hgetall myhash —-输出结果为:name age issingle zlh 31 no
获取所有的field的命令hkeys
redis 127.0.0.1:6379>hkeys myhash —输出结果为:name age issingle
获取所有字段的值的命令hvals
redis 127.0.0.1:6379>hvals myhash —-输出结果为:zlh 31 no
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109108.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...