redis数据类型

概述

  • redis的键是字符串类型的
  • Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合。
    这里写图片描述

String

  • 字符串是Redis中最基本的数据类型,它能够存储任何类型的字符串,包含二进制数据。可以用于存储邮箱,JSON化的对象,甚至是一张图片,一个字符串允许存储的最大容量为512MB
  • 字符串在redis中二进制安全的,着意味着该类型的存入和获取的数据是相同的
    • 二进制安全和数据安全是没有关系的
      • 关系性数据库二进制不安全这里写图片描述
      • redis二进制数据安全这里写图片描述

    • 赋值:==set key value==:设定key持有特定的字符串,如果该key存在则进行覆盖操作,总是 返回ok这里写图片描述

    • 取值:==get key==:获取key的value,如果与该key关联的value不是String类型,redis将返回错误信息因为get命令只能获取String value,如果该key不存在,返回nil这里写图片描述
  • 删除
    • 删除 :==del key==:删除执行的key,返回值是数字类型,表示删除了几条数据这里写图片描述

    • getset key value:先获取key的值,然后设置该key的值这里写图片描述
    • ==incr key==:将指定的key的value原子性的递增1,如果该key不存在,其初始值是0,在incr之后其值为1,如果value的值不能转成整形,那么报错这里写图片描述
    • ==desc key==:同理,将指定的key的value原子性递减1这里写图片描述
    • incrby key increment:将指定的key的value增加increment这里写图片描述
    • decrby key increment:将指定的key的value减少increment这里写图片描述
    • ==append key value==:拼凑字符串,如果该key存在,则在原有的value后追加该 值,如果该key不存在,则重新创建一个key、value这里写图片描述
  • String使用环境
    • 主要用于保存json格式 的字符串

hash

  • redis中的hash类型可以 看成具有String key和String value的map容器,所以该类型非常适合于存储键值对的信息,每一个hash可以存储4294967295个键值对

    • hset key field value:为指定的key设置field/value(键值对)这里写图片描述
    • hmset key field value [field2 value2]设置key中的多个field/value这里写图片描述

    • hmget key filed1 filed2…;获取 key中的多个field的值这里写图片描述
    • hgetall key :获取key中的所有的field-value这里写图片描述
    • hkeys key:获取所有的字段这里写图片描述
    • hvals key:获取所有的value这里写图片描述
    • hexists key field :判断指定的key中filed是否存在,1表示存在,0表示不存在这里写图片描述
    • hlen key:获取key所包含的field的数量这里写图片描述
  • 删除
    • hdel key field [field]可以删除一个或者 多个字段,返回值是被删除的字段的个数
    • del key:删除整个list这里写图片描述

list

  • redis中操作最多的是进行元素的增删
  • 使用环境:做大数据集合的增删,任务队列

    • ==lpush key value….== 从左端开始依次插入添加元素imageimage
    • ==rpush key value….== 从右开始开始依次添加元素image

    • ==lrange key start end==:获取链表中的从start到end的元素的值,start、end从0开始计数,也可以为负数,若为-1表示链表尾部的元素,-2则表示倒数第二个,以此类推。。image
    • llen key:返回指定的key关联的链表中的元素的数量image

    • ==lpop key==:返回并且删除指定的key关联的链表中的第一个元素,即头部元素,如果该key不存在,返回nil,如果key存在,则返回链表的 头部元素image
    • ==rpop key==:从尾部弹出元素image
    • lrem key count value:(删除某种元素)删除count个值为value的元素,如果count大于0,从头向尾遍历并且删除count个值为value的元素,如果count小于0,则从尾向头遍历并且删除,如果count等于0,则删除链表中的所有等于value的元素image
    • lset key index value:(通过索引替换元素)设置链表中的index的角标的元素值,0代表链表的头元素,-1代表链表的尾元素,操作链表的角标不存在则抛出异常image
    • linsert key before|after pivot value:在pivot元素前或者后出入value这个元素image

    • ==rpoplpush resource destination==:将链表中的尾部元素弹出并添加到头

    • 两队排列:image
    • 循环对列:image

set

  • Java hashSet无序,不重复
  • redis操作中,涉及到两个大数据集合的并集,交集,差集运算image

    • ==sadd key values…==向set中添加数据,如果该key的值已经有了则不会重复添加image

    • ==smembers key==:获取set中所有的成员image
    • sismember key member:判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或者该key本身就不存在image

    • srem key members…删除set中的指定的成员image
  • ==集合运算==
    • 差集:sdiff key1 key2 …:返回key1与key2中相差的成员,而且与key的顺序有关,即返回差集image
      • 实例:image
    • 交集运算:sinter key1 key2 key3…:返回交集image
      • 实例:image
    • 并集运算:sunion key1 key2 key3…;返回并集image
      • 实例:image
  • 扩展命令
    • scard key:获取set中成员的数量image
    • srandmember key:随机返回set中的一个成员image
    • sdiffstore destination key1 key2 …;将key1 和 key2的差集保存在destination上image
    • sinterstore destination key1 key2 …;将key1 和 key2的交集保存在destination上image
    • sunionstore destination key1 key2 …;将key1 和 key2的并集保存在destination上image

有序set集合zset

  • 有序set集合用来做排行榜
  • 添加元素:
    • zadd key score member score2 member 2…将所有的成员以及成员的分数放到集合中,如果该元素已经存在使用新的分数替换原来的分数,返回值是新加入到集合中的元素个数,不包含之前已经存在的元素 image
  • 获取元素:
    • zscore key member:返回指定成员的值image
    • zcard key:获取集合中的成员数量image
    • zrange key start end [withscores]获取集合中角标为start-end的成员,[withscores]参数表名返回的成员包含其分数,==分数由小到大排序==
      • 不包含分数image
      • 包含分数 image
    • zrevrange key start end [withscores]获取集合中角标为start-end的成员,[withscores]参数表名返回的成员包含其分数,==分数由大到小排序==,适用于排行榜image
  • 删除元素:
    • zrem key member..移除集合中的指定的成员,可以指定多个成员 image
    • zremrangebyrank key start stop:按照排名范围删除元素image
    • zremrangebyscore key min max:按照分数范围删除元素image
  • 扩展命令:
    • zrank key member:返回成员在集合中的排名,索引(从小到大) image
    • zrevrank key member :返回成员在集合中的排名,索引(从大到小)image
    • zrangebyscore key min max [withscores] [limit offset count]:返回分数在[min,max]的成员并按照分数从低到高排序,[withscores]:显示分数:[limit offset count]:offset,表名从角标为offset的元素开始并返回count个成员image
    • zincrby key increment member:设置指定成员增加的分数,返回值是更改后的分数image

通用命令

  • ==keys pattern==:获取所有的域pattern匹配的key,返回所有与该key匹配的keys
    • 通配符:*表示任意0个或多个任意 字符
    • ?表示任意一个字符
    • 例子:
      • keys * 查询所有的key。image
      • keys ???? 查询所有的只有四个字符的key。image
      • keys *name* 查询所有的包含name的key。image
  • ==dle key1 key2==….;删除指定的key。image
  • exists key:判断该key是否存在,1代表存在,0代表不存在image
  • rename key newkey:为当前的key重命名image
  • ==expire key seconds==:设置过期时间,单位:秒image
  • ==ttl key==:获取该key所剩的超时时间,如果没有设置超时,返回-1,如果返回-2表示超时不存在image
  • ==type key==:获取指定的key的值类型,该命令将以字符串的格式返回,返回的字符串为String,list,set,hash,zset,如果key不存在返回none。image

扩展命令

  • quit:退出客户端
  • dbsize:返回当前数据库中key的数目
  • info:查看redis数据
  • ping:如果返回pong表示连接正常
  • echo:在命令行打印一些内容
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值