Redis数据类型(常见命令实操练习)

一、Redis的五大数据类型
  1.1、String(字符串)
  String 是redis最基本的类型,一个key对应一个value。它是二进制安全的,即Redis的string可以包含任何数据,比如JPG图片或者序列化的对象。一个Redis中字符串value最多可以是512M。
  1.2、Hash(哈希,类似Java中的Map)
  Redis hash是一个键值对 集合。是一个String 类型的fieId和value的映射表,hash特别适合存储对象。类似Java中的Map<String,Object>。
  1.3、List(列表)
  Redis列表是简单的字符串列表,按照超如顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边),它的底层实际是个链表。
  1.4、Set(集合)
  Redis的Set是String类型的无序集合,是通过HashTable实现的。
  1.5、Zset(sorted set:有序集合)
  Redis Zset 和 Set一样也是String类型元素的集合,且不允许重复的成员。不同的是Zset中,每个元素都会关联一个double类型的分数,以此进行排序。Redis正是通过分数来为集合中的成员进行从小到达的排序。Zset的成员是唯一的,但分数(score)却可以重复。
  常用命令可以查看官网常用命令
二、Redis 键(key)

keys *      	  --查看当前数据库中所有的key值
exists key的名字  --判断某个key是否存在
move key db       --从当前库移除某个key
expire key 秒钟   --为给定的key设置过期时间
ttl key           --查看key还有多少秒过期,-1表示永不过期,-2表示已过期
type key          --查看某个key是什么类型

可参考下图:
在这里插入图片描述
三 、Redis字符串(String)
  Redis 中的String 数据类型是单值单value,即一个key对应一个value.

set/get/del/append/strlen   
	--设置key和value/获取key对应的值/del删除key及对应的值/追加内容/获取key的值的长度
Incr/decr/incrby/decrby 
	--一定要是数字才能进行加减,字符串之类的将会报错
	自增1/自减1/自增一定的增量值/自减一定的增量值
getrange/setrange    
	--getrange:获取指定区间范围内的值,类似between...and的关系,从0 到 -1 表示全部
	 setrange:设置指定区间范围内的值,格式是setrange key值 具体值
setex(set with expire)键秒值/setnx(set if not exist)
	--setex:设置带过期时间的key,动态设置,setex 键 秒值 真实值
	setnx:只有在key不存在时,设置key的值
mset/mget/msetnx
	--mset:同时设置一个或多个key-value对。
	mget:获取所有(一个或多个)给定的key的值。
	msetnx:同时设置一个或多个key-value对,当且仅当所有给定的key都不存在才设置key-value对。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200504083220416.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MTk2MjY1,size_16,color_FFFFFF,t_70#pic_center)

getset(将给定的key的值设为新的value值,并返回key的旧值(old value))
	--先get然后立即set,即,先把old vlaue get获取到,再立即set 设置key的新的value。

可参考下图:
在这里插入图片描述
在这里插入图片描述
四、Redis列表(List)
  单值多value,一个key对应多个value。

LPUSH/RPUSH/LRANGE
	--将一个或多个值插入到表头部/在列表中添加一个或多个值/获取列表指定范围内的元素
LPOP/RPOP
	--移除并获取列表的第一个元素/移除并获取列表最后一个元素
LINDEX
	--按照索引 下标 获得元素(从上到下)
LLEN
	--获取列表长度
LREM key 
	--删除n个value
LTRIM key 
	--开始index  结束index,截取指定范围的值后再赋值给 key
RPOPLPUSH 源列表 目的列表
	--移除源列表的最后一个元素,并将该元素添加到另一个(目的)列表并返回
LSET key index value 
	--通过索引设置列表元素的值
LINSERT key before/after value1 value2 
	--在list某个已有值的前后再添加具体值

可参考下图:
在这里插入图片描述
性能总结:list是一个字符串列表,left、right都可以插入添加;如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了;链表的操作无论是头和尾效率都极高,但如果是对中间元素进行操作,那效率就会非常低。
五、Redis集合(Set)
  单值多value,一个key对应多个value。

sadd/smembers/sismember
	--向集合添加 一个或多个成员/返回集合中的所有成员/判断member元素是否是集合key的成员
scard
	--获取 集合里面元素的个数
srem key value
	--删除集合中元素
srandmember key
	--某个整数(随机出几个数),如果超过最大数量就会全部取出,如果写的值是负数,则表示需要取出3个,但可能会有重复
spop key
	--随机出栈
smove key1 key2 在key里某个值
	--将key1里的某个值赋给key2
数学集合类
	--差集:sdiff --在第一个set里面,但不在后面任何一个set里面的元素;
	--交集:sinter --在第一个set里面,并且也在后面的set里面的元素,即两个set中相同的元素;
	--并集:sunion --两个set中所有的元素

可参考下图:
在这里插入图片描述
在这里插入图片描述
六、Redis哈希(Hash)
  key-value模式不变,不过hash中的value是一个键值对(key-value)。

hset/hget/hmset/hmget/hgetall/hdel
	--将hash表key中的字段field的值设为value/获取存储在hash表中指定字段的值/同时将多个field-value(域-值)对设置到哈希表的key中/获取所有给定字段的值/删除一个或多个哈希表字段
hlen
	--获取hash表中字段的数量
hexists key 在key里面的某个值的key
	--查看hash表key中,指定的字段是否存在
hkeys/hvals
	--获取所有hash表中的字段/获取哈希表中所有值
hincrby/hincrbyfloat
	--为hash表key中的指定字段的整数值加上增量increment/为hash表key中指定字段的浮点数值加上增量increment
hsetnx
	--只有在字段field不存在时,设置hash表字段的值

可参考下图:
在这里插入图片描述
七、Redis有序集合Zset(Sorted set)
  在set基础上,多加一个score值。例如:之前set 为:k1 v1 v2 v3…现在zset为:k1 score1 v1 score2 v2…

zadd/zrange
	--向有序集合添加一个或多个成员(或者更新已存在成员的分数)/通过索引区间返回有序集合成指定区间内的成员
zrangebyscore key 开始score 结束score
	--通过分数返回有序集合指定区间内的成员
zrem key 某score下对应的value值,作用是删除元素
	--移除有序集合中的一个或多个成员
zcard/zcount key score 区间/zrank key values值作用是获得下标值/zscore key 对应值,获得分数
	--获取有序集合的成员数/计算在有序集合中指定区间分数的成员数/返回有序集合中指定成员的索引/返回有序集合中,成员的分数值
zrevrank key values值
	--逆序获得下标值
zrevrange
	--返回有序集合中指定区间内的成员,通过索引,分数从高到低
zrevrangebyscore key 结束score 开始score
	--返回有序集合中指定分数区间内的成员,分数从高到低排序

可参考下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值