数据类型
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
- “20”
- “lisi”
127.0.0.1:6379> hgetall user - “age”
- “20”
- “username”
- “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
- “age”
- “name”
127.0.0.1:6379> hvals user - “20”
- “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();
}