您的位置:首页 > 数据库 > Redis

redis中5种数据类型介绍、命令(二)

2016-04-07 19:18 609 查看
这篇博客学习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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: