前言

redis 有多种数据类型,兼容应用的开发。

说明

第一种数据类型:string(字符串)

set key value     -- 设置key和key对应的value值

get key              -- 获取key对应的value值

案例:

incr key      ---对应的value 自增1,如果没有这个key值 自动给你创建创建 并赋值为1

decr key     ---对应的value 自减1

incrby key num      ---对应的value 增num

decrby key num     ---对应的value 减num

mset key1 value1 key2 value2 一次设置多个值

mget key1 key2    一次查询多个值

setrange key offset value:把字符串的offset偏移字节改成value,如果偏移量 > 字符串长度,该字符自动补0x00

append key value :把value追加到key 的原值上

getrange key start stop:获取字符串中[start, stop]范围的值

getset key nrevalue:返回旧值并设置新值

incrbyfloat key 0.7: 自增浮点数

strlen key:取指定key的value值的长度

setex key time value:设置key对应的值value,并设置有效期为time秒。

ttl key    查询剩余有效时间

第二种数据类型:hash(字典)

案例:

hset  key  filed value     -- 设置hash的键值。

hget key filed                -- 获取hash的值。

HMSET key field value [field value ...]    -- 批量设置hash的键值

HMGET key field [field ...]                       -- 批量查询hash的值

HGETALL key         -- 查询key的全部键值对信息

HDEL key field [field ...]     -- 删除hash中的其中一个或者多个键值对

HEXISTS key field          -- 是否存在默个键值对

HKEYS key         -- 查询hash 的全部键值信息

HVALS key        -- 查询hash 的全部键值对应的value信息

HINCRBY key field increment                -- 某一个键值上加increment 偏移量

HINCRBYFLOAT key field increment      -- 某一个键值上加increment 浮点数的偏移量

HLEN key     -- 哈希键对应的键值对数量

HSETNX key field value         -- hash的键不存在时才加入并赋值。

第三种数据类型:list(列表)

结构:

key                 value

key                 [6 , 5 , 4 , 3 , 2 , 1]

下标   0   1   2    3  4   5(-1)

案例:

LPUSH key value [value ...]      -- 写入数据到list, 先进先出原理

LINDEX key index              -- 查询list 某个下标的数据

LRANGE key start stop             -- 查询list 数据。

LPUSHX key value      -- 存在键加入,不存在不创建key值。

LINSERT key BEFORE|AFTER pivot value     -- 在某个元素之前或者之后插入数据

RPUSH key value [value ...]      -- 将数据插入链表,链表是先进先出

RPUSHX key value         -- 存在key 则插入,否则无效,链表的操作。

RPOPLPUSH source destination     -- 复制list的最后一个数据

LREM key count value       -- 删除count个元素。

LTRIM key start stop          -- 保留从start到stop的元素

LSET key index value       -- 修改某个角标上的值。

LPOP key      -- 获取第一个元素,并且删除。

第四种数据类型:set(集合)

结构:

key                 value

key                 (zhangsan , lili , hanmeimei, lilei )

案例:

sadd key member [member ...]      -- 添加数据到set可以多个

SCARD key    -- 查询set数量

SMEMBERS key     -- 查询集合中的全部元素

SUNION key [key ...]       -- 获取多个集合的并集。

SINTER key [key ...]          --  获取多个集合的交集

SDIFF key [key ...]            -- 第一个key 和其他key的差级

SDIFFSTORE destination key [key ...]  -- 将差集的值,存入destination集合中

SINTERSTORE destination key [key ...]     -- 将交集的值,存入destination集合中

SUNIONSTORE destination key [key ...]     -- 将并集的值,存入destination集合中

SISMEMBER key member     -- 判断集合中是否在member 成员

SMOVE source destination member    -- 移动成员从集合到另一个集合

SPOP key [count]      -- 随机删除count个元素,并且返回被删除的元素

SRANDMEMBER key [count]    -- 顺序返回count个元素

SREM key member [member ...]      -- 删除集合元素

SSCAN key cursor [MATCH pattern] [COUNT count]    -- 迭代集合的元素

第五种数据类型:sortset(有序集合)

结构:

key                 value

key                 (scores zhangsan ,scores  lili ,scores  hanmeimei,scores  lilei )

0                      1                         2                    3(-1)

案例:

ZADD key [NX|XX] [CH] [INCR] score member [score member ...]      -- 增加一个带数量的元素

ZINCRBY key increment member     -- 给某个元素设置数量

ZREVRANGE key start stop [WITHSCORES]        -- 排序显示集合元素, WITHSCORES 表示额外打印分数

ZCARD key       -- 查询有序集合元素

ZCOUNT key min max      -- 查询在min到max区间内的元素个数

ZRANGE key start stop [WITHSCORES]     -- 根据脚标查询有序集合,WITHSCORES带分数显示。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]     -- 通过分数返回元素,WITHSCORES带分数显示

ZRANK key member        -- 获取有序集合指定元素的角标。

ZREM key member [member ...]       -- 按照元素名称移除指定元素

ZREMRANGEBYSCORE key min max     -- 按照分数范围移除指定元素

ZREVRANK key member             -- 获取某个元素的排名

ZSCORE key member             -- 获取某个元素的分数

其他特殊点:

cat /tmp/data.txt | redis-cli -a 123456    -- 将文件data.txt的redis命令交给redis-cli 执行。

总结

Redis的这些数据类型都是为了满足当前互联网的需求,简化一些特定场景的数据操作,并且快速。

参考:http://doc.redisfans.com/list/blpop.html

《Redis内存数据库》Redis数据类型和基本操作的更多相关文章

  1. Redis 中的数据类型及基本操作

    Redis 内置的数据类型有 5种:字符串String.哈希Hash.列表List.集合Set.有序集合ZSet 字符串类型 String 是 Redis 中最基本的类型,一个 key 对应着一个 v ...

  2. Redis 键值数据类型及基本操作

    到目前为止,Redis 支持的键值数据类型如下: 字符串(String) 哈希(Map) 列表(list) 集合(sets) 有序集合(sorted sets)   1. String 字符串类型 s ...

  3. Redis数据类型的基本操作

    Redis数据类型的基本操作 一.string类型 1.设置value

  4. Redis的各种数据类型到底能玩出什么花儿?

    https://mp.weixin.qq.com/s/ZSQ9vCkWXYuLrKS0UJ4RIg 两个星期终于肝了出来,Redis相关问题脑图,终于整理完了!!! 文末无套路分享~~附获取方式 Re ...

  5. Redis内存数据库在Exchange会议室的应用

    本文论述了现有Exchange会议室应用现状和不足之处,并详细介绍了Redis内存数据库在Exchange会议室的应用,并给出了一种高性能的应用架构及采用关键技术和关键实现过程,最终实现大幅改进系统性 ...

  6. 支持持久化的内存数据库-----Redis

    一.Redis概述 1.1.什么是Redis Redis是一种高级key-value数据库.它跟memcached类似,不过数据 可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合 ...

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

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

  8. Redis进阶实践之四Redis的基本数据类型(转载4)

    Redis进阶实践之四Redis的基本数据类型 一.引言 今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软 ...

  9. 什么是redis?Reids的特点是什么?Redis支持的数据类型有哪些?

    首先,分布式缓存框架 可以 看成是nosql的一种 (1)什么是redis? redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) (2)Reids的 ...

随机推荐

  1. STL函数库的应用第二弹——快排sort函数与结构体关键字排序

    时隔20多天,本蒟蒻终于记起了他的博客园密码!!! 废话不多说,今天主题:STL快排函数sort()与结构体关键字排序 Part 1:引入和导语 首先,我们需要知道,algorithm库里有一些奇怪的 ...

  2. 2020大厂web前端面试常见问题总结

    本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题.通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者. 1.web前端项目的结构是怎样的?文件有哪些命名规范? 项 ...

  3. YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台

    手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...

  4. MySQL数据库下统计记录数小于指定数值的数据

    楼主在做一个智慧工地的产品,需要对工人进行一些数据统计,比如要统计导入人员数量小于30的工地,SQL应该怎么写呢? 首先了解一下数据结构,工地分三张表,四级层级关系,Organization表存储区域 ...

  5. 一篇文章快速搞懂Qt文件读写操作

    导读:Qt当中使用QFile类对文件进行读写操作,对文本文件也可以与QTextStream一起使用,这样读写操作会更加简便.QFileInfo可以用来获取文件的信息.QDir可以用于对文件夹进行操作. ...

  6. flink创建视图的几种方式

    import org.apache.flink.api.common.typeinfo.BasicTypeInfo; import org.apache.flink.api.java.typeutil ...

  7. 0基础掌握接口测试神器-Postman

    一:Postman环境搭建 1:postman是什么?Postman是一款功能强大的网页调试与发送网页HTTP请求的接口测试工具.2:postman有几种安装方式?两种,应用程序和浏览器插件 3:po ...

  8. vuex的模块化使用

    store文件如下 1.modules下文件是模块化的划分,里面的js有state,action,mutations.然后通过 export default { namespaced: true, s ...

  9. openCV - 2. 矩阵的掩膜操作

    获取图像像素指针.掩膜操作解释 获取图像像素指针 CV_Assert(myImage.depth() == CV_8U); Mat.ptr<uchar>(int i=0) 获取像素矩阵的指 ...

  10. 用java中的Arraylist实现电话本系统管理

    大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...