1. redis的数据类型
- String -字符串类型
- Hash -Hash类型,就是对于value里边又是一个键值对。
- List -列表类型,即数组
- Set -集合类型,集合中不允许重复
- Zset - 有序的集合类型
2. String 字符串类型
这里说的字符串不仅是传统上说的字符,它还可以对应数字。
String最大容纳512M字节,建议单个kv不超过100kb,否则在内存中提取的效率将会大大降低。
字符串中最长使用的命令:
命令 | 示例 | 说明 |
---|---|---|
get | get hello | 获得key = hello 结果 |
set | set hello world | 设置key = hello, value = world |
mset mget | mset hello world java best , mget hello java | 一次性设置或获取多个值 |
del | del hello | 删除key = hello |
incr /decr | incr count, decr count | key值自增/自减1 |
incrby / decrbby | incrby count 99, decrby count 99 | 自增自减指定步长 |
3. Hash键值类型
Hash类型用于存储结构化数据,员工信息,班级信息,学校信息,学生信息等有固定属性的对象
emp:1 -> name:smith
age:35
birthday:1988-01-30
height:178
Hash命令:
命令 | 示例 | 说明 |
---|---|---|
hget | hget emp:1 age | 获取hash中key=age的值 |
hset | hset emp:1 age 30 | 设置hash 中age=23 |
hmset 、hmget、hgetall | hmset emp:1 age 30 name kaka、hmget emp:1 age name、hgetall emp:1 | 设置hash多个值、获取hash多个值、获取hash所有值 |
hdel | hdel emp:1 age | 删除emp:1的age |
hexists | hexists emp:1 name | 检查是否存在 |
hlen | hlen emp:1 | 获取指定长度 |
4. List列表类型
- List列表就是一系列字符串的“数组”,按插入顺序排序。
- 最大长度为2^32-1,可以包含大约40亿个元素。
- list 命令
rpush listkey c b a --右侧插入
lpush listkey f e d --左侧插入
rpop listkey --右侧弹出,一次弹出一个元素
lpop listkey --左侧弹出,一次弹出一个元素
5. Set集合与Zset集合类型
Set集合是字符串的无序集合,集合成员是唯一的
Zset集合是字符串的有序集合,集合成员是唯一的
set命令:
sadd 创建一个集合 例:sadd set1 a
看所有的数据: keys *
想看集合中所有元素: snumbers set1
多个set集合是可以进行运算的:
命令 | 用法 | 含义 |
---|---|---|
sinter交集: | sinter set1 set2: | set1和set2中都出现的元素 |
sunion 并集: | sunion set1 set2: | set1和set2中全部出现过的元素 |
sdiff 差集: | sdiff set1 set2: | set1中有,set2中没有的元素 |
Zset命令:
zadd创建一个集合:zadd zset1 100 a
zadd zset1 101 b(这里的100,101代表的是后面元素的位置,默认按照升序排列)
zrange 用于输出指定范围的元素:zrange zset1 0 -1 [withscores]打印分数
zrangebyscore zset1 100 103:会输出分数为100(包括)-103(包括)的对应的元素