Redis--Redis的数据类型

Redis支持丰富的数据类型有:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等

一.String类型

简介

String类型是Redis里最基本的数据类型,一个key最多可以存储512MB.
String类型数据结构是简单的key-value类型,value可以是任意类型.
String类型是二进制安全的,可以包含任何数据.

String命令
赋值语法
set key value  //向数据库里存入一个key,key值重复会进行覆盖
setnx key value  //如果Key不存在则设值,并返回1,如果存在则不设值并返回0
setex key1 过期时间单位秒 value //设置key值  并设置过期时间
取值语法
get key  //获取指定的key的值
getrange key  start  stop  //获取指定key中字符串的子字符串(取一段)包含start和end
getbit key offset  //获取指定索引的字符
getset  key  value  //设置key的值,b并返回key的旧值,key不存在就返回nil
strlen key  //返回指定key的长度
删除语法
del key 删除指定的key
批量
mset  key  value  key  value  批量写入
mget key key  批量读出
自增
incr key  //给数字值+1  key不存在则初始化为0
incrby key   //增加指定的数值
自减
decr key  //数字-1
decrby  key  //减去指定数值
字符串拼接
append  key value  
应用场景
  • 1、String通常用于保存单个字符串或JSON字符串数据
  • 2、因String是二进制安全的,所以你完全可以把一个图片文件的内容作为字符串来存储
  • 3、计数器(常规key-value缓存应用。常规计数: 微博数, 粉丝数)

二.Hash类型

简介

Hash类型是String类型的field和value的映射表,或者说是一个String集合。
Hash类型特别适合存储一个对象

常用命令
赋值语法
hset key field value //为指定的key设置field和value
hset key field value field value //指定多个key设置field和value
取值语法
hget key field   //获取指定key根据field获取值
hgetall key 返回表中所有的字段和值
hkeys key  //返回hash表中所有的字段和值
hlen key  //返回hash表中的字段数量
删除语法
hdel key field   /删除一个或多个字段
hexists key field  //查看key中指定的字段是否存在
应用场景

常用于存储一个对象

三.List类型

简介

List类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。
我们可以通过相关的操作进行集合的头部或者尾部添加和删除元素

常用命令
赋值语法
lpush key value  //左侧添加  头部
rpush                  //右侧添加  尾部
lpushx                 //添加到头部  如果不存在操作无效
rpushx 				//添加到尾部  如果不存在操作无效
取值语法
llen  key         //获取列表的长度
lindex   key  index    //获取指定索引的元素
lrange  key  start  stop   //查看指定区间的元素   start=0  stop=-1则返回所有的元素(可以作为分页使用)
删除语法
lpop  key   //移除并获取第一个元素
rpop  key  //移除并获取最后一个元素
blpop  key  timeout   //移除第一个元素  如果没有则等待   超时时间到后停止
ltrim  key  start  stop  //修剪  移除区间外的所有元素
修改语法
lset  key  index value    //通过索引设置列表元素的值
linsert  key befor||after  world value   //在指定元素之前或之后插入元素
高级命令
rpoplpush  source  destination  //移除最后一个添加到指定集合的第一个
brpoplpush  source  destination  timeout  //从列表中弹出一个值,并返回他,如果没有就阻塞列表
应用场景

1、对数据量大的集合数据删减
2、任务队列

四.Set类型

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,set是通过hashtable实现的

常用命令
赋值语法
sadd key member  //向集合中添加一个或多个元素
取值语法
scard  key   //返回集合成员数
smembers   key  //返回集合中所有成员
sismember  key  member   //判断元素是否是这个集合里的成员
删除语法
srem key  member  //删除一个或多个成员
spop  key  //删除并返回一个或多个成员
smove source destination member  //将成员移动到另一个集合
差集
sdiff key  key  //获取指定集合的差集
sdiffstore  destination key  key  //返回给定集合的差集并存储在destination中
交集
sinter  key  key   //返回给定集合的交集
sinterstore destination key  key  //返回给定集合的交集并存储在destination中
并集
sunion  key  key   //返回给定集合的并集 
sunion  destination key  key  //返回给定集合的并集并保存到destination中
应用场景

1、利用集合操作,可以取不同兴趣圈子的交集,以非常方便的实现如共同关注、共同喜好、二度好友等功能。
2.利用唯一性可以统计网站的所有独立IP的活跃用户列表

五.Zset

简介

1、 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
2、不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
3、有序集合的成员是唯一的,但分数(score)却可以重复。
4、集合是通过哈希表实现的。

常用命令
赋值语法
zadd key score  member  //向有序集合中添加一个或多个成员
取值语法
zcard  key  //获取有序集合的成员数
zcount key  min  max  //获取有序集合中指定区间的成员数
zrank key member  //返回有序集合中指定成员的索引
zrange  key  start  stop   //通过索引区间获取区间内的成员(升序)
删除语法
del key   //删除集合
zrem   member  //删除有序集合中一个或多个元素
应用场景

1.销量排名
2.积分排名
3.队列权重

六.HyperLogLog

简介

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法.
HyperLogLog并不保存数据,只记录数量

常用命令
pfadd key element    //添加指定元素到HyperLogLog中
pfcount  key  返回给定HyperLogLog的技术估算值
pfmerge destkey sourcdkey  将多个HyperLogLog合并为一个
应用场景

1.统计文章真实阅读量
2.统计在线人数
3.统计每日访问ip数

如有错误联系更改 非常感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值