这篇博客学习redis的基本命令,主要是讲解五种数据类型。
redis提供五种数据类型:string,hash,list,set及zset(sorted set)。下面对5种类型分别介绍。
在介绍五种数据类型前,我们先来了解一下redis的几个基本的命令,感受一下。个人建议,边看redis的命令,边在redis-cli程序中输入命令,
还是那句话,代码是敲出来的。
注:redis中命令不区分大小写
基本命令
1. 查看redis中所有键命令
keys * 查看所有键
keys a* 查看所有以a开头的键
2. 判断键是否存在
exists aa 判断键名为aa的是否存在。返回值为1,表示存在;0表示不存在。
3. 查看键值的数据类型
type aa
返回值有五种情况。string,字符串类型;hash,散列类型;list,列表类型;set,集合类型;zset,有序集合类型。
五种数据类型
一. 字符串类型
类型介绍
字符串类型是redis中最基本的数据类型,可以存储任何格式的的字符串包括二进制数据,如用户信息、JSON格式的对象等等。一个字符串键值最大存储
512MB字节数据。
操作命令
1. 赋值:set name zhangsan 为键name,赋值为zhangsan
2. 取值:get name 获取键name的值(当键name不存在时返回空)
3. 向尾部追加值:append name nihao 向键name的值后追加nihao字符串
4. 获取字符串长度:strlen name 获取键name的值的长度,若键name不存在返回0
5. 同时赋多个值:mset aa 11 bb 22 cc 33 同时为键aa,bb,cc分别赋值为11,22,33
6. 同时取多个值:mget aa bb 同时获取键aa,bb的值
7. 当存储的字符串为整数时,可以使用递增:incr aa 对键aa进行递增,返回值12(若键是字符串会报错)
8. 递减:decr aa 对键aa进行递减
9. 删除:del aa 删除键aa
二. 散列类型
类型介绍
redis是采用键值对的方式存储数据,散列类型也是也是键值对存储的,字段值支持字符串类型。散列类型适合存储对象。
操作命令
1. 赋值:hset dog name zhangsan 为dog键name,赋值为zhangsan
2. 取值:hget dog name 获取dog键name的值
3. 批量赋值:hmset dog sex 1 age 5 向dog键sex和age赋值,1和5
4. 批量获取值:hmget dog sex age 批量获取dog键sex和age值
5. 获取指定key的所有键和键值:hgetall dog 获取dog的所有键和键值
6. 判断字段是否存在:hexists dog age 存在返回1,不存在返回0
7. 键值增加:hincrby dog age 8 为dog的age加上8
8. 删除:hdel dog sex 删除成功返回1,不存在返回0
9. 只获取字段集合:hkeys dog 获取dog下所有字段名
10. 只获取字段值集合:hvals dog 获取dog下所有字段对应值
11. 获取字段的数量:hlen dog 获取dog下字段的个数
三. 列表类型
类型介绍
列表类型存放有序的字符串列表集合,常用的操作向列表的两端插入数据,或者获取列表的某段数据。
操作命令
1. 向列表的左边(前面)添加:lpush hospital 1 为hospital的左边添加元素
2. 向列表的右边(后面)添加:rpush hospital 2 为hospital的右边添加元素
3.从列表左边弹出数据:lpop hospital 弹出数据把数据返回,同时删除掉
4.从列表右边弹出数据:rpop hospital 弹出数据把数据返回,同时删除掉
5. 获取列表中元素个数:llen hospital 获取hospital中元素个数
6. 获取列表中某段数据:lrange hospital 0 2 获取hospital从0开始到2(共计3个元素),列表是从0开始。若lrange hospital 0 -1,查询所有
7. 删除:lrem hospital 0 2 从左边开始删除第一个为2的元素(注:redis没有rrem命令)
8. 获取指定索引的元素值:lindex hospital 2 获取hospital中索引为2的元素
9. 设置指定索引的元素值:lset hospital 1 9 设置hospital中索引为1的元素值为9
10. 只保留指定索引间元素(其它全删):ltrim hospital 1 2 只保留索引1到2之间的元素,其它全部删除
11. 向列表中插入元素:
12. 将元素从一个列表转换到另一个列表:
四. 集合类型
类型介绍
集合类型中每个元素都是不同的,且没有顺序。集合类型最常用的操作是向集合中添加、删除元素,判断集合中是否存在某个元素。
操作命令
1. 添加:sadd mail a 为mail添加元素a
2. 删除:srem mail a 删除mail中元素a
3. 获取集合中所有元素:smembers mail 获取mail中所有元素
4. 判断元素是否在集合中:sismember mail a 判断mail集合中是否有元素a,存在返回1,不存在返回0
5. 多集合间计算差集:sdiff mail mailA
6. 多集合间计算交集:sinter mail mailA
7. 多集合间计算并集:sunion mail mailA
8. 获得集合中元素个数:scard mail
9. 集合运算并将结果存储:sdiffstore
10. 随机获取集合中元素:srandmember mail
11. 从集合中弹出一个元素:spop mail
五. 有序集合类型
类型介绍
有序集合相对集合是有顺序的。有序集合中每个元素都关联了一个分数,集合中每个元素都是不同的,但是分数可以相同。
操作命令
1. 添加:zadd scoreboard 90 aa 80 bb 95 cc
2. 获得元素分数:zscore scoreboard aa
3. 获取某个范围:zrange scoreboard 0 2