基本数据类型
1、String
# 介绍:
Stirng 可以是jpg图片 或 序列化的对象
# 基本语法
set key value
get key
# 使用:
127.0.0.1:6379> set name packet 设置name 为 packet
OK 系统回应OK
127.0.0.1:6379> get name 获得name值
"packet" 系统回应"packet"
进阶用法:
# 设置对象 id=1
set user:1 {name:zhangsan,age:3} # 设置usre:1 对象,值为json字符串
# redis中
mset user:1:name zhangsan user:1:age 3 # 将user:1:name 作为 key 与 user:1:age 作为key
- 计数器
- 统计多单位数量
- 粉丝数
- 对象缓存存储
incr id:follows
2、Hash哈希
# 介绍:
是键值对集合
适合存储对象
# 基本语法:
HMSET 对象 key value key value .....
# 基本使用:
127.0.0.1:6379> HMSET person name packet age 18 创建person对象,第一个键值对 name packet 二:age 18
OK 系统回应 OK
127.0.0.1:6379> HGET person name 获取person对象中key 为 name 的值
"packet"
127.0.0.1:6379> HGET person age 获取person对象中key 为 age 的值
"18"
用户信息保存:变更信息的内容,
3、List
# 介绍
是字符串列表
按插入顺序排序
可以添加字符串在头部或尾部
# 基本语法:
lpush 字符串名字 字符串
lrange 字符串名字 起始下标 终止下标
# 使用
127.0.0.1:6379> DEL person 已经创建的需要删除,不然会报错
(integer) 1 系统回复1,表示成功
127.0.0.1:6379> lpush person name 插入字符串数组person ,第一为name
(integer) 1 第1个插入成功
127.0.0.1:6379> lpush person age 插入字符串数组person ,第一为age
(integer) 2 第2个插入成功
127.0.0.1:6379> lpush person gender 插入字符串数组person ,第一为gender
(integer) 3 第3个插入成功
127.0.0.1:6379> lrange person 0 2 获取person字符串中0-2的字符
1) "gender"
2) "age"
3) "name"
进阶:
- 栈、队列、阻塞队列
- 实际上是一个链表,头插,尾插都是可以的
- 消息排队,消息队列
4、set
#介绍
是string类型的无序集合。集合是通过哈希表实现的,所以添加、删除、查找复杂度都是O(1)
不可以重复
#基本语法
sadd key value
127.0.0.1:6379> sadd pp name
(integer) 1
127.0.0.1:6379> sadd pp age
(integer) 1
127.0.0.1:6379> sadd pp gender
(integer) 1
127.0.0.1:6379> smembers pp
1) "name"
2) "age"
3) "gender"
共同关注:差集、补集
微博、将所有关注的人放在一个集合中,他的粉丝也放在一个集合中,共同好友,
5、zset(sorted set 有序集合)
# 介绍
与List 类似 ,但是不允许有重复的 , 每个元素都会关联一个double类型的分数。
按照这个分数从小到大排序 ,, 且score是可以重复的
# 基本语法
zadd 字符串名字 score 字符串
zrangebyscore 字符串名字 起始下标 结束下标
#基本使用
127.0.0.1:6379> ZADD person 0 name 插入字符串数组person 第一个为name 分数为0
(integer) 1 系统回复1,插入成功
127.0.0.1:6379> zadd person 1 age 插入字符串数组person 第一个为age 分数为1
(integer) 1 系统回复1,插入成功
127.0.0.1:6379> zadd person 2 gender 插入字符串数组person 第一个为gender 分数为1
(integer) 1 系统回复1,插入成功
127.0.0.1:6379> zrangebyscore person 0 2
1) "name"
2) "age"
3) "gender"