redis-4.数据类型hash

数据类型

set get

 @Test
    public void appen(){
        Jedis jedis = new Jedis("192.168.71.100",6379);
        jedis.mset(new String[]{"id","7758258","native","china"});
        jedis.close();
    }
192.168.71.100:6379> keys *
1) "gender"
2) "address"
3) "age"
192.168.71.100:6379> keys *
1) "address"
2) "gender"
3) "age"
4) "id"
5) "native"

192.168.71.100:6379> keys *
1) "age"
2) "gender"
3) "address"
4) "id"
5) "name"
6) "native"
192.168.71.100:6379> mget age gender address
1) "18"
2) "man"
3) "beijing"
192.168.71.100:6379> append address huton
(integer) 12
192.168.71.100:6379> get address
"beijinghuton"
192.168.71.100:6379> strlen age
(integer) 2
192.168.71.100:6379> get age
"18"
192.168.71.100:6379> mget age name
1) "18"
2) "xiaosi"
192.168.71.100:6379> 

hash模式数据类型

语法:
HSET key field value 一次只能设置一个字段值
HGET key field 一次只能获取一个字段值
HMSET key field value [field value …] 一次可以设置多个字段值
HMGET key field [field …] 一次可以获取多个字段值
HGETALL key
127.0.0.1:6379> hset user username zhangsan
(integer) 1
127.0.0.1:6379> hget user username
"zhangsan“
HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0.

127.0.0.1:6379> hmset user age 20 username lisi
OK
127.0.0.1:6379> hmget user age username

  1. “20”
  2. “lisi”
    127.0.0.1:6379> hgetall user
  3. “age”
  4. “20”
  5. “username”
  6. “lisi”

7.4.2 判断字段是否存在
HEXISTS key field
127.0.0.1:6379> hexists user age 查看user中是否有age字段
(integer) 1
127.0.0.1:6379> hexists user name 查看user中是否有name字段
(integer) 0

HSETNX key field value
当字段不存在时赋值,类似HSET,区别在于如果字段已经存在,该命令不执行任何操作。
127.0.0.1:6379> hsetnx user age 30 如果user中没有age字段则设置age值为30,否则不做任何操作
(integer) 0

7.4.3 其它命令(自学)
 删除字段
可以删除一个或多个字段,返回值是被删除的字段个数
HDEL key field [field …]
127.0.0.1:6379> hdel user age
(integer) 1
127.0.0.1:6379> hdel user age name
(integer) 0
127.0.0.1:6379> hdel user age username
(integer) 1

 只获取字段名或字段值
HKEYS key
HVALS key
127.0.0.1:6379> hmset user age 20 name lisi
OK
127.0.0.1:6379> hkeys user

  1. “age”
  2. “name”
    127.0.0.1:6379> hvals user
  3. “20”
  4. “lisi”

 获取字段数量
HLEN key
127.0.0.1:6379> hlen user
(integer) 2

192.168.71.100:6379> hset user name xiaosi age 20 gender 1 address hainan
(integer) 4
192.168.71.100:6379> hget user
(error) ERR wrong number of arguments for 'hget' command
192.168.71.100:6379> hget user name
"xiaosi"
192.168.71.100:6379> hget user age
"20"
192.168.71.100:6379> hgetall user
1) "name"
2) "xiaosi"
3) "age"
4) "20"
5) "gender"
6) "1"
7) "address"
8) "hainan"
192.168.71.100:6379> hmset items:1001 id 3 name apple price 999.9

在这里插入图片描述
在java之中的操作(其实他是对应着相应的api的)maven环境构建参考上一节,这里显示用法:

 //hash
    @Test
    public void hashTest(){
        Jedis jedis = new Jedis("192.168.71.100", 6379);
        jedis.hset("person","name","zhangsan");
        String hget = jedis.hget("person", "name");
        System.out.println(hget);
        jedis.close();
    }

    @Test
    public void hashTest1(){
        Jedis jedis = new Jedis("192.168.71.100", 6379);
        Map<String, String> map = new HashMap<String, String>();
        map.put("username","lisi");
        map.put("age","10");
        map.put("address","Fjnu");
        jedis.hmset("user1", map);
        List<String> user1 = jedis.hmget("user1", new String[]{"username", "age", "address"});
        for (String s : user1) {
            System.out.println(s);
        }

        Set<String> keys = jedis.keys("user");
        List<String> hvals = jedis.hvals("user");
        System.out.println(keys);
        System.out.println(hvals);
        jedis.close();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值