redis中hash存储(三)

这很像java中的hashmap,所以理解起来很简单,很适合存储一一对应的数据或对象,比如账号和密码就是这种情况,账号不允许重复,密码允许重复

命令示例:

1. HSET/HGET/HDEL/HEXISTS/HLEN/HSETNX:(设置值/获取值/删除键值/判断是否存在键/返回键数量/hash中键值不存在才设置值)

127.0.0.1:6379> hset myhash key1 value1   //添加myhash 里的键值为key1,value为value1,因为一开始没有myhash,就先创建myhash
(integer) 1
(0.54s)
127.0.0.1:6379> hget myhash key1  //获取myhash里的key为key1的value
"value1"
127.0.0.1:6379> hget myhash key2  //如果不存在这个key就返回nil
(nil)
127.0.0.1:6379> hset myhash key2 "value2"
(integer) 1
127.0.0.1:6379> hlen myhash  //获取hash的长度也就是key的数量
(integer) 2
127.0.0.1:6379> hexists myhash key //判断hash有没有这个key,没有就返回0
(integer) 0
127.0.0.1:6379> hexists myhash key1 //有就返回1
(integer) 1
127.0.0.1:6379> hdel myhash key1 //删除hash中key为key1的键值对,删除成功返回1
(integer) 1
127.0.0.1:6379> hdel myhash key1  //因为上条删除了,这条命令就肯定没法删除没有的,就删除失败返回0
(integer) 0
127.0.0.1:6379> hexists myhash key1
(integer) 0
127.0.0.1:6379> hsetnx myhash key1 value1  //因为不存在就添加成功
(integer) 1
127.0.0.1:6379> hsetnx myhash key1 value2 //存在了,就没办法写入了
(integer) 0
127.0.0.1:6379> hget myhash key1 //查看没修改成功的hash里的key1的value
"value1"

2. HINCRBY:(增加值)

127.0.0.1:6379> del myhash
(integer) 1
127.0.0.1:6379> hset myhash key1 5  
(integer) 1
127.0.0.1:6379> hincrby myhash key1 1   //value自增长1,返回结果
(integer) 6
127.0.0.1:6379> hincrby myhash key1 -1 //value自增长-1,也就是递减1,返回结果
(integer) 5
127.0.0.1:6379> hincrby myhash key1 -10 //value自增长-10 ,或者递减10,返回结果
(integer) -5
127.0.0.1:6379> hget myhash key1  //说名value存储的是字符串,但是自增长时转成数字,增长完成后再返回字符串
"-5"

3. HGETALL/HKEYS/HVALS/HMGET/HMSET:(获取所有的键与值/获取所有的键/获取所有的值/设置多个键值/获取多个键对应的值)

127.0.0.1:6379> del myhash
(integer) 1
127.0.0.1:6379> hmset myhash key1 1 key2 2  //创建多个hash的键值对
OK
127.0.0.1:6379> hmget myhash key1 key2 key3  //获取指定的key的value,如果不存在,返回nil
1) "1"
2) "2"
3) (nil)
127.0.0.1:6379> hgetall myhash  //获取所有键值对,排列开的,第一行是key,第二行就是value
1) "key1"
2) "1"
3) "key2"
4) "2"
127.0.0.1:6379> hkeys myhash //获取所有的myhash里的key
1) "key1"
2) "key2"
127.0.0.1:6379> hvals myhash//获取所有的myhash里的value
1) "1"
2) "2"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值