02redis五种数据类型

来源:互联网 发布:广州pm2.5实时数据 编辑:程序博客网 时间:2024/06/04 20:06

介绍

redis分为五种基本数据类型:String、Hash、List、Set、ZSet

1.String类型

String类型是一种包含很多种类型的特殊类型,并且是二进制安全的。比如将序列化的对象进行存储,比如一张图片进行二进制存储。比如一个简单的字符串,数值等等。
方法使用:
1. 设置值:set 名称 值(名称随便自己取,值就是想存入的内容,设置name多次会覆盖)
2. 删除值:del 名称
这里写图片描述
3. 使用 setnx (not exist)
name 如果不存在就进行设置,存在就不需要进行设置了,返回0
4. 使用 setex (expired)
设置数据的有效时间,以秒为单位,失效后返回nil (nil代表为空)
这里写图片描述
5. 使用 setrange 替换字符串
setrange 名称 第几位开始 替换内容
这里写图片描述
从第六位就是开始替换了,想替换的内容写在最后
6. 一次设置多个和获取多个值
mset 和 mget
这里写图片描述
7. 一次性取值和设置新值得方法 getset
这里写图片描述
8. 每次数值加减1 incr decr
这里写图片描述
9. 指定大小的加减 incrby decrby
这里写图片描述
10. 对字符串进行追加 append
这里写图片描述
11. 获取字符串长度 strlen
这里写图片描述

2.Hash类型

Hash类型是String类型的field和value的映射表,或者说是一个String集合,它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的空间,并方便存取整个对象。
1. 哈希存入 hset
hset 哈希名 field value
2. 哈希获取 hget
hget 哈希名 field
这里写图片描述
3. 一次性存入和获取多个 hmset hmget
这里写图片描述
4. 假如存入hash的field存在,返回0,不存在则存入
这里写图片描述
5. 集合递增和递减 hincrby hdecrby
这里写图片描述
6. 获取一个hash里全部的值
hgetall 哈希名
7. 判断是否存在key,存在则返回1,不存在则返回0 hexists
这里写图片描述
8. 返回一个hash的长度
hlen 哈希名
9. 删除指定的 hash 的 field
这里写图片描述
10. 返回一个hash里所有的字段
hkeys 哈希名
11. 返回一个hash的所有value
hvals 哈希名
这里写图片描述
注意: redis不适合做 关联表等复杂表操作,可以在关系数据库里面弄好一个视图,然后把视图存入到redis里面

3.List

List是一个链表结构的集合,其主要功能有push pop 获取元素等等。更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加和删除元素,List的设计非常简单精巧,既可作为栈,又可作为队列。
1. 添加元素和遍历元素
lpush是从头部加入元素(栈),先进后出、
rpush是从尾部加入元素(队列)先进先出
lrange 表名 0 -1 (表示从0位置开始,一直到找不到,下标为-1)
这里写图片描述
2. linsert 插入元素
这里写图片描述
3. lset 方法 指定下标的元素替换掉
这里写图片描述
4. lrem 方法 删除元素,返回删除的个数
这里写图片描述
5. rpoplpush 第一步从尾部删除元素,第二部从头部加入元素
rpoplpush 表名 内容
6. lindex 返回名称为key的list中 index位置的元素
这里写图片描述
7. llen 返回元素的个数
这里写图片描述

3.Set

Set集合是String类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集,并集,差集。
1. sadd:向名称为key的set中添加元素。(set集合不允许重复元素,smembers查看集合中的元素)
2. srem:删除set集合中的元素
3. spop:随机返回删除的key
这里写图片描述
4. sdiff:返回两个集合不同的元素(哪个集合在前就以哪个为准)
这里写图片描述
5. sdiffstore:将返回的不同元素存储到另一个集合里(把set1和set2的不同元素,以set1为准,存储到set3)
这里写图片描述
6. sinter:返回集合的交集
7. sinterstore:返回集合的交集并存储到另一个集合中
这里写图片描述
8. sunion:取并集,并集的概念就是 set1里面有a,b set2里面有b,c set1和set2并集就是a,b,c
9. sunionstore:取并集,并存储到另一个set中
这里写图片描述
10. smove:从一个集合移动 到另一个集合
这里写图片描述
11. scard:查看集合里元素个数
12. sismember:判断某元素是否是集合中的元素,存在为1,不存在为0
13. srandmember:随机返回一个元素
这里写图片描述

4.ZSet

ZSet是一个有序的集合,业务场景可以用于打分,从高到低进行排名等。
1. zadd:添加元素
2. zrem:删除名称为key的zset中的元素member
3. zrem:遍历,尾部可以加一个 withscores 表示显示元素的序号
这里写图片描述
4. zincrby:指定值去自动递增或减少,和incrby类似
这里写图片描述
5. zrangebyscore:找到指定区间范围内的数据进行返回
6. zremrangebyscore:删除指定序号(或者删除序号n到m)
这里写图片描述
7. zremrangebyrank:删除指定索引
8. zrank:返回排序索引 从小到大排序(升序排序之后再找索引,看该数据前面还有几个数据)
9. zrevrank:返回排序索引 从大到小排序(降序排序之后再找索引)
这里写图片描述
10. zrangebyscore : 找到指定区间范围内的数据进行返回
11. zcard:返回区间内所有元素的个数
12. zcount:返回集合中序号在给定区间中的数量
这里写图片描述
13. zremrangebyrank:删除指定索引的
14. zremrangebyscore:删除指定序号的
这里写图片描述

原创粉丝点击