3redis的哈希操作
1redis可作为mysql的缓存使用,这个映射关系就可以用hash哈希值处理,例如mysql中select * from user where id=1000这个语句表示要查询id=1000的用户的所有信息,在redis中就可以用hgetall user:1000来表示:
127.0.0.1:6379> hmset user:1000 username zhangsan age 28 job it #这里的user:1000表示key,给这个key添加field和value值
OK
127.0.0.1:6379> hmget user:1000 username #获取key为user:1000的field的值
1) "zhangsan"
127.0.0.1:6379> hmget user:1000 username age
1) "zhangsan"
2) "28"
127.0.0.1:6379> hmget user:1000 username age job
1) "zhangsan"
2) "28"
3) "it"
127.0.0.1:6379> hgetall user:1000 #获取key为user:1000的所有field值
1) "username"
2) "zhangsan"
3) "age"
4) "28"
5) "job"
6) "it"
127.0.0.1:6379> hmset user:1000 email 66907360@qq.com #给user:1000的这个key增加一个fiels-value值
OK
127.0.0.1:6379> hgetall user:1000
1) "username"
2) "zhangsan"
3) "age"
4) "28"
5) "job"
6) "it"
7) "email"
8) "66907360@qq.com"
127.0.0.1:6379>
[root@db01 ~]# redis-cli hmset user:1000 chongwu 喵星人 #可以插入中文
OK
[root@db01 ~]# redis-cli hgetall user:1000 #中文还自动转换为16进制的码,如需人类可读,需要导出后查看
1) "username"
2) "zhangsan"
3) "age"
4) "28"
5) "job"
6) "it"
7) "email"
8) "66907360@qq.com"
9) "chongwu"
10) "\xe5\x96\xb5\xe6\x98\x9f\xe4\xba\xba"
[root@db01 ~]# redis-cli hgetall user:1000>test1.txt #导出后查看
[root@db01 ~]# cat test1.txt #查看
username
zhangsan
age
28
job
it
email
66907360@qq.com
chongwu
喵星人
[root@db01 ~]#
1
1
1