redis个人学习笔记 二:redis的数据类型

       此文是我看尚硅谷教学视频后的个人的redis学习笔记,每一张截图都是我亲自敲后截图放在笔记中的,粘贴在博客上可能会有点点模糊,若有错误或不足,还望各位大神多多指正!

4 redis的数据类型

4.1 Redis的五大数据类型

4.1.1 string(字符串)

       string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。

4.1.2 hash(哈希,类似java里的Map)

       Redis hash 是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象,类似Java里面的Map

4.1.3 list(列表)

       Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。

4.1.4 set(集合)

       Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

4.1.5 zset(sorted set:有序集合)

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

4.2 哪里去获得redis常见数据类型操作命令

       http://redisdoc.com/

4.3 键(key)

       以下列出为常用

4.3.1 keys *:查询所有的key

这里写图片描述

4.3.2 exists key:判断某个key是否存在

       判断某个key是否存在
这里写图片描述
       这里如果通过java判断是否有这个key存在,只要返回1就是表示存在了

4.3.3 move key db:把key移到指定的库

       move key db—>当前库就没有了,被移除了
这里写图片描述

4.3.4 expire key 秒:给key设定过期时间

       expire key 秒钟:为给定的key设置过期时间
这里写图片描述

4.3.5 ttl key:查看指定Key还有多久过期

       ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
这里写图片描述

4.3.6 type key:查看key的数据类型

       type key 查看你的key是什么类型
这里写图片描述

4.4 字符串(String)

       常用命令案例

4.4.1 set/get/del/append/strlen

这里写图片描述

4.4.2 Incr/decr/incrby/decrby 一定要是数字才能进行加减

这里写图片描述
这里写图片描述
这里写图片描述

4.4.3 getrange/setrange

       ① getrange:获取指定区间范围内的值,类似between……and的关系,从0到-1表示全部
这里写图片描述
       在此处,set k1 1,2,3,4 “,”也算是一个值,不是分隔符,相当于k1的value是“1,2,3,4”的一个字符串
       ② setrange设置指定区间范围内的值,格式是setrange key值具体值
这里写图片描述
       在此处,k1的值是“1,2,3,4”的一个字符串,从0开始设置3个xxx,因为redis的下标是从0开始的,所以就替换了“1,2,”这三个字符,结果就是“xxx,3,4”
关于getrange/setrange的解释见https://blog.csdn.net/chengqiuming/article/details/79118082

4.4.4 setex /setnx

       ① setex(意思:set with expire) :设置带过期时间的key,动态设置。
setex 键 秒值 真实值
这里写图片描述
       ② setnx(意思:set if not exist):只有在 key 不存在时设置 key 的值。
这里写图片描述

4.4.5 mset/mget/msetnx

       ① mset:同时设置一个或多个 key-value 对。
       ② mget:获取所有(一个或多个)给定 key 的值。
这里写图片描述
       ③ msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
这里写图片描述
       上面的例子,k4也不会被存入。

4.4.6 getset(先get再set)

       getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
       简单一句话,先get然后立即set
这里写图片描述

4.5 Redis列表(List)

       常用命令案例

4.5.1 lpush/rpush/lrange

       先进先出
这里写图片描述

4.5.2 lpop/rpop

这里写图片描述

4.5.3 lindex,按照索引下标获得元素(从上到下)

这里写图片描述

4.5.4 llen

这里写图片描述

4.5.5 lrem key 删N个value

这里写图片描述

4.5.6 ltrim key 开始index 结束index,截取指定范围的值后再赋值给key

这里写图片描述

4.5.7 rpoplpush 源列表 目的列表

这里写图片描述

4.5.8 lset key index value

这里写图片描述

4.5.9 linsert key before/after 值1 值2

这里写图片描述

4.5.10 性能总结

       ① 它是一个字符串链表,left、right都可以插入添加;
       ② 如果键不存在,创建新的链表;
       ③ 如果键已存在,新增内容;
       ④ 如果值全移除,对应的键也就消失了。
       ⑤ 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

4.6 Redis集合(Set)

       常用命令案例

4.6.1 sadd/smembers/sismember

这里写图片描述

4.6.2 scard,获取集合里面的元素个数

这里写图片描述

4.6.3 srem key value 删除集合中元素

这里写图片描述

4.6.4 srandmember key 某个整数(随机出几个数)

       ① 从set集合里面随机取出2个
       ② 如果超过最大数量就全部取出,
       ③ 如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值。
这里写图片描述

4.6.5 spop key 随机出栈

这里写图片描述

4.6.6 smove key1 key2 在key1里某个值

       将key1里的某个值赋给key2
这里写图片描述

4.6.7 数学集合类

       ① 差集:sdiff,在第一个set里面而不在后面任何一个set里面的项
       ② 交集:sinter
       ③ 并集:sunion
这里写图片描述

4.7 Redis哈希(Hash)

       KV模式不变,但Value是一个键值对
这里写图片描述
       常用命令案例

4.7.1 hset/hget/hmset/hmget/hgetall/hdel

这里写图片描述
这里写图片描述

4.7.2 hlen

这里写图片描述

4.7.3 hexists key 在key里面的某个值的key

这里写图片描述

4.7.4 hkeys/hvals

这里写图片描述

4.7.5 hincrby/hincrbyfloat

这里写图片描述

4.7.6 hsetnx

       不存在赋值,存在了无效。
这里写图片描述

4.8 Redis有序集合Zset(sorted set)

       在set基础上,加一个score值,之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2
       常用命令案例

4.8.1 zadd/zrange

       Withscores
这里写图片描述

4.8.2 zrangebyscore key 开始score 结束score

       ① Withscores
这里写图片描述
       ② 不包含
       60到90,但是不含90
这里写图片描述
这里写图片描述
       ③ limit 作用是返回限制,limit 开始下标步 多少步,类似于分页
这里写图片描述

4.8.3 zrem key 某score下对应的value值,作用是删除元素

       删除元素,格式是zrem zset的key 项的值,项的值可以是多个
这里写图片描述

4.8.4 zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数

       ① zcard :获取集合中元素个数
这里写图片描述
       ② zcount :获取分数区间内元素个数,zcount key 开始分数区间 结束分数区间
这里写图片描述
       ③ zrank: 获取value在zset中的下标位置
这里写图片描述
       ④ zscore:按照值获得对应的分数
这里写图片描述

4.8.5 zrevrank key values值,作用是逆序获得下标值

       正序、逆序获得下标索引值
这里写图片描述

4.8.6 zrevrange

这里写图片描述

4.8.7 zrevrangebyscore key 结束score 开始score

       zrevrangebyscore zset1 90 60 withscores 分数是反着来的
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值