一.String(字符串)
- 127.0.0.1:6379 > set key value (设置一个键值对)
- 127.0.0.1:6379 > get key (获取一个键值对)
- 127.0.0.1:6379 > setex key seconds value(设置键值对在内存中存放的有效时间)
- 127.0.0.1:6379 > mset key1 value1 key2 value2 ...(同时设置多个键值对)
- 127.0.0.1:6379 > mget key1 key2 (同时获取多个键值对)
二.Hash(哈希)
- Hash(类似golang里的Map)介绍:
Redis hash是一个键值对集合。var user1 map[string][string]
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
2. 举例:存放一个user信息 (user1 name "bob" age 30 job "coder"),说明:
key:user1
[name "bob" ]、[age 30 ]、[job "coder"]就是三对field-value
3. 演示
127.0.0.1:6379 > hset user1 name "bob"(设置名字)
127.0.0.1:6379 > hset user1 age 30(设置年龄)
127.0.0.1:6379 > hset user1 job "coder"(设置工作)
127.0.0.1:6379 > hget user1 name(获取名字)
127.0.0.1:6379 > hget user1 age(获取年龄)
127.0.0.1:6379 > hget user1 job(获取工作)
127.0.0.1:6379 > hgetall user1 (一次获取key=user1的所有value)
或者
127.0.0.1:6379 > hmset user2 name "bob" age 10 job "coder" (一次性设置名字、年龄、工作)
127.0.0.1:6379 > hmget user2 name age job (一次性获取名字、年龄、工作)
127.0.0.1:6379 > hlen user2 (统计一个hash有几个元素)
127.0.0.1:6379 > hexists user2 name(查看user2中是否含有name字段)
三.List(列表)
1.列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
List本质是个链表,List的元素是有序的,元素的值可以重复。
(1) 从左边存入a,b,c;从右边存入d,e。
那么最终从左边取出来的顺序为:c,b,a,d,e。从右边取出来的顺序为:e,d,a,b,c
2.举例:存放多个地址信息:
city 北京 天津 上海
说明:
key : city
北京 天津 上海
3.演示
127.0.0.1:6379 > lpush city beijing tianjing shanghai(从左边存入元素)
127.0.0.1:6379 > rpush city hefei dalian(从右边存入元素)
127.0.0.1:6379 > lrange city 0 -1(从左边的0位置读取到倒数第1个的位置)
127.0.0.1:6379 > lpop city (从左边弹出一个元素)
127.0.0.1:6379 > rpop city (从右边弹出一个元素)
127.0.0.1:6379 > llen city(查看list长度)
127.0.0.1:6379 > del city(删除list)
四.Set(集合)
1. redis的Set是string类型的无序集合。底层是哈希表的数据结构,Set可以存放很多字符串元素,字符串元素是无序的,且元素的值不能重复。
2.举例:存放多个邮件列表信息
说明:
key:email
222@qq.com 333@qq.com 两个元素
3.演示
127.0.0.1:6379 > sadd email 222@qq.com 333@qq.com (添加)
127.0.0.1:6379 > smembers email (获取信息)
127.0.0.1:6379 > sismember email 222@qq.com(判断值是否成员)
127.0.0.1:6379 > srem email 222@qq.com(删除指定信息)
五.ZSet(有序集合)