1.String字符串
string是redis最基本的类型,一个key对应一个value
string类型是二进制安全的,是指redis的string可以包含任何数据,比如jpg图片或者序列化的对象
string类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M
在set之前先把库里面原有的数据给get出来:set k1 vv get
可设置过期时间:set k1 v1 ex 10
keepttl:保留设置前指定键的生存时间:set k1 vv keepttl
一次设置多个值,一次获取多个值
msetnx kk1 11 xx1 1:此时如果已经存在kk1,则不能操作成功
获取指定区间范围的值getrange、setrange
2.List列表
redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的左边或者右边
rpush/lpush/lrange的用法
lpop/rpop
lindex:按照索引下标获取元素
llen:获取列表元素的个数
lrem key: 数字N给定值V1,删除N个V1的值(lrem---remove)
ltrim key:开始index结束index,截取指定范围的值后再赋值给key
rpoplpush:源列表 目的列表
lset key index value
linsert key before/after:已有值,插入的新值
3.hash哈希表
是一个string类型的字段和值的映射表,hash特别适合用于存储对象。
redis中每个hash可以存储2^32-1键值对
4.set集合
set是string类型的无序集合,集合成员是唯一的,意思是不能出现重复的数据,集合对象的编码可以是intset或hashtable。
set集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)
5.Hyperloglog基数统计
是用来基数统计的算法,它的优点是在输入元素的数据或者体积非常非常大时,计算基数所需的空间总是固定且很小的。比如统计某个网站上一天的用户访问量,而此时的访问量是不重复的。
6.GEO地理空间
主要用于存储地理位置信息,并对存储的信息进项操作,包括添加地理位置的坐标、获取地理位置的坐标、计算俩个位置之间的距离,根据用户给定的经纬度坐标来获取指定范围内的地址位置集合。比如某一个位置附近的医院或者便利店
7.bitmap位图
由0和1状态表现得二进制位得bit数组,用来判断Y/N状态,比如签到机制或者打开机制
strlen:统计字节数占用多少
bitcount:全部键里面含有1的有多少个
bitop operation destkey key:对不同的二进制存储数据进行位运算(and/or/not/xor)
一般用于统计一段时间内的用户操作,如一年内的签到
8.bitfield位域
可以一次性操作多个比特位域,它会执行一系列操作并返回一个响应数组,这个数组中的元素对应参数列表中的相应操作得执行结果。
9.stream流
主要用于消息队列MQ,redis本身是有一个redis发布订阅来实现消息队列得功能,但它有个缺点就是消息无法持久化,如果出现网络断开,redis宕机,消息就会丢弃
10.zset有序集合
向有序集合中加入一个元素和该元素的分数
分数按照从高到低排序: zrevrange k1 0 -1 withscores
按照分数排序:zrangebyscore k1 60 80
ZMPOP:从键名列表中的第一个非空排序集中弹出一个或多个元素,它们是成员分数对
应用的场景:
根据商品销售对商品进行排序显示:定义商品销售排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量
- 商品编号1001的销量是9,商品编号1002的销量是15:zadd goods:sellsort 9 1001 15 1002
- 有一个客服又买了2件商品1001,商品编号1001销量加2:zincrby goods:sellsort 2 1001
- 求商品销量前10名:zrange goods:sellsort 0 9 withscores