Redis数据类型目录导航:

  • Redis五大数据类型
  • 哪里去获取Redis常见数据类型操作命令
  • Redis键(Key)
  • Redis字符串(String)
  • Redis列表(List)
  • Redis集合(Set)
  • Redis哈希(Hash)
  • Redis有序集合ZSet(sorted set)

Redis的五大数据类型

  • String(字符串)

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。

  • Hash(哈希,类似Java里的Map)

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

  • List(列表)

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

  • Set(集合)

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

  • ZSet(Sorted Set:有序集合)

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

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

http://redisdoc.com/

Redis键(Key)

  • 常用

  • 案例

    • keys *
    • exists key的名字,判断某个key是否存在
    • move key db   --->当前库就没有了,被移除了
    • expire key 秒钟:为给定的key设置过期时间
    • ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
    • type key 查看你的key是什么类型

Redis字符串(String)

  • 常用

  • 单值单Value
  • 案例
    • set/get/del/append/strlen
    • Incr/decr/incrby/decrby,一定要是数字才能进行加减
    • getrange/setrange

getrange:获取指定区间范围内的值,类似between......and的关系

从零到负一表示全部

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 都不存在。

  •  getset(先get再set)

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

Redis列表(List)

  • 常用

  • 单值多Value
  • 案例
    • lpush/rpush/lrange
    • lpop/rpop

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

通过索引获取列表中的元素 lindex key index

    • llen
    • lrem key 删N个value

* 从left往right删除2个值等于v1的元素,返回的值为实际删除的数量
* LREM list3 0 值,表示删除全部给定的值。零个就是全部值

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

ltrim:截取指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引

    • rpoplpush 源列表 目的列表

移除列表的最后一个元素,并将该元素添加到另一个列表并返回

    • lset key index value

    • linsert key  before/after 值1 值2

在list某个已有值的前后再添加具体值

    • 性能总结

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

Redis集合(Set)

  • 常用

  • 单值多Value
  • 案例
    • sadd/smembers/sismember

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

获取集合里面的元素个数

    • srem key value 删除集合中元素

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

* 从set集合里面随机取出2个

* 如果超过最大数量就全部取出,

* 如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值。

    • spop key 随机出栈

    • smove key1 key2 在key1里某个值      作用是将key1里的某个值赋给key2

    •  数学集合类

      • 差集:sdiff

在第一个set里面而不在后面任何一个set里面的项

      • 交集:sinter

      • 并集:sunion

Redis哈希(Hash)

  • 常用

  • KV模式不变,但V是一个键值对
  • 案例
    • hset/hget/hmset/hmget/hgetall/hdel

    • hlen
    • hexists key 在key里面的某个值的key
    • hkeys/hvals

    • hincrby/hincrbyfloat

    • hsetnx

不存在赋值,存在了无效。

Redis有序集合ZSet(sorted set)

  • 多说一句

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

  • 案例

    • zadd/zrange

    • zrangebyscore key 开始score 结束score

      • withscores
      •  (   不包含
      • Limit 作用是返回限制
        •  limit 开始下标步 多少步
    • zrem key 某score下对应的value值,作用是删除元素

删除元素,格式是zrem zset的key 项的值,项的值可以是多个 zrem key score某个对应值,可以是多个值。

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

zcard :获取集合中元素个数

zcount :获取分数区间内元素个数,zcount key 开始分数区间 结束分数区间

zrank: 获取value在zset中的下标位置

zscore:按照值获得对应的分数

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

正序、逆序获得下标索引值

    • zrevrange

    • zrevrangebyscore  key 结束score 开始score

zrevrangebyscore zset1 90 60 withscores    分数是反着来的

Redis(三):Redis数据类型的更多相关文章

  1. redis(三)-----redis基本数据类型

    Redis的全称是REmote Dictionary Server,它主要提供了5种数据结构:字符串.哈希.列表.集合.有序集合,同时在字符串的基础之上演变 出了位图(Bitmaps)和HyperLo ...

  2. redis(三)redis+Keepalived主从热备秒级切换

    一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y in ...

  3. Redis(三)--- Redis的五大数据类型的底层实现

    1.简介 Redis的五大数据类型也称五大数据对象:前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject:这个对象系统包 ...

  4. Redis系列三 Redis数据类型

    一 .Redis的五大数据类型 1.String(字符串) string是redis最基本的数据类型,可以理解成与 Memached一模一样的数据类型,一个key对应一个value. string 类 ...

  5. 关于Redis中的数据类型

    一. Redis常用数据类型 Redis最为常用的数据类型主要有以下: String Hash List Set Sorted set 一张图说明问题的本质 图一: 图二: 代码: /* Object ...

  6. redis中各种数据类型对应的jedis操作命令

    redis中各种数据类型对应的jedis操作命令 一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 ...

  7. redis安装及数据类型简介(string、list、set、sorted_set、hash)

    一:简介: redis国内最大的案例--->新浪微博 memcache:是key-value数据库 数据类型:只支持key value数据 过期策略:支持 持久化:不支持(可以通过三方程序) 主 ...

  8. Redis进阶实践之四Redis的基本数据类型

    一.引言    今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软件使用的更频繁,适用范围更广呢?就是因为R ...

  9. redis的基本数据类型

    一:redis是一个开源的,使用C语言编写,支持网络,可基于内存亦可持久化的日志型,key-value方式存储的nosql数据库.作为缓存服务器,速度效率都很快,和memcache相似 redis支持 ...

  10. redis五种数据类型和常用命令及适用场景

    一.redis的5种数据类型: 1.基础理解: string 字符串(可以为整形.浮点型和字符串,统称为元素) list 列表(实现队列,元素不唯一,先入先出原则) set 集合(各不相同的元素) h ...

随机推荐

  1. mysql 链接报 Can't connect to MySQL server on 'localhost' (10061)

    之前好好的,重启了下电脑就报了上面的问题... 解决办法很简单:重启下mysql的服务: win7系统,电脑-管理-服务和应用程序-服务,找到mysql重启 即可.

  2. C# mvc读取模板并修改上传到web

    C# mvc读取模板并修改上传到web 后台: public FileResult GetXls() { FileStream fs = new FileStream(System.Web.HttpC ...

  3. Can't create new folder in windows7

    First, please use System File Checker tool to troubleshoot(诊断) this issue. If the issue persists, im ...

  4. 一个典型的后台软件系统的设计复盘——(二)如何id一个事物

    这个话题,可以从类与对象说起. Dog dog1 = new Dog(); 哪个是类,哪个是对象?这个问题搞不清楚,后面就无从说起了.然后两个程序员之间沟通说,那个狗有问题.除非两人很默契,不然另一人 ...

  5. 学习Road map Part 04 自动驾驶、SLAM、ROS、树莓派

    学习Road map Part 04 自动驾驶.SLAM.ROS.树莓派

  6. IIS 7.5+FCK编辑器+burp suite神器拿webshell

    本人小菜一枚,大牛勿喷 看图: 一个越南狗的网站,看了看好多人来过哦,估计都是在这跪下了,试了好多别人上传滴都不行,看了看是IIS7.5,难怪都卡在这里了,于是小编直接上神器Burp Suite- 截 ...

  7. 如何用jstl的select标签做二级联动下拉列表框??

    下拉列表框的多级联动早就会了.但是用jstl的select标签做下拉列表框的做二级联动的时候还是遇到了些问题.主要问题在用Ajax查询到的数据如何拼成下拉选项的时候.其实很简单,但我还是折腾了好久.所 ...

  8. Unix I/O--输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程

    输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程 https://www.bbsmax.com/A/o75N88ZxzW/ 10.1 Unix I/O 一个Unix ...

  9. 类图(Rose) - Windows XP经典软件系列

    版权声明:本文为xiaobin原创文章.未经博主同意不得转载. https://blog.csdn.net/xiaobin_HLJ80/article/details/24584625         ...

  10. django+ajax用FileResponse文件下载到浏览器过程中遇到的问题

    问题: 公司的需求是从mongodb中查找数据并下载回本地,但是在将文件从mongodb通过django服务端,然后从django服务端向浏览器下载文件.但是在下载的时候出了些问题.由于是用的ajax ...