# 什么是Redis?
Redis 是完全开源免费的,是一个高性能的key-value内存数据库,读的速度是110000次/s,写的速度是81000次/s  
 
它有以下三个特点:
 
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
 
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
 
Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行 。
 
Redis还支持 publish/subscribe, 通知, key 过期等特性 。
 
# 安装
下载地址:https://redis.io/download
 
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
 
启动服务器,并且使用客户端程序连接服务器
 
通过命令 info 查看所有的信息
 
通过命令 config get * 查看所有配置信息
 
# 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(有序集合)
 
通过简单的命令
Set key 
设置值
 
Get key
得到值
 
Keys 规则
得到指定规则的key
 
Del key
删除key 
 
# 字符串常用命令
SET key value               设置指定 key 的值 
GET key                  获取指定 key 的值。 
GETRANGE key start[index] end [index]  返回 key 中字符串值的子字符 
GETSET key value             将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
MGET key1 [key2..]            获取所有(一个或多个)给定 key 的值。
SETEX key seconds(秒) value       将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
SETNX key value              只有在 key 不存在时设置 key 的值。 
SETRANGE key offset value        用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。 
STRLEN key                 返回 key 所储存的字符串值的长度。 
MSET key value [key value ...]     同时设置一个或多个 key-value 对。 
MSETNX key value [key value ...]     同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 
PSETEX key milliseconds value       这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间。
INCR key                  将 key 中储存的数字值增一。 
INCRBY key increment            将 key 所储存的值加上给定的增量值(increment) 。 
DECR key                  将key 中储存的数字值减一。 
DECRBY key decrement            key 所储存的值减去给定的减量值(decrement) 。 
APPEND key value              如果 key 已经存在并且是一个字符串, APPEND 命令将 指定value 追加到                           改 key 原来的值(value)的末尾。
 
# 哈希常用命令
HSET key name bwf               设置一个键为name值为bwf
HGET key field                  获取存储在哈希表中指定字段的值。
HKEYS key                     获取所有哈希表中的字段 
HLEN key                     获取哈希表中字段的数量
HDEL key field1 [field2]            删除一个或多个哈希表字段
HGETALL key                    获取在哈希表中指定 key 的所有字段和值
HMSET key field1 value1 [field2 value2 ]   同时将多个 field-value (域-值)对设置到哈希表 key 中。
HSETNX key field value             只有在字段 field 不存在时,设置哈希表字段的值。 
HVALS key                     获取哈希表中所有值
 
 
# 列表常用命令
RPUSH key value1               在列表中添加值
LSET key index value             通过索引设置列表元素的值
LINSERT key BEFORE|AFTER pivot value    在列表的元素前或者后插入元素 
LINDEX key index                通过索引获取列表中的元素 
LPUSH key value1               将一个值插入到列表头部
LRANGE key start stop             获取列表指定范围内的元素  -1为所有值
LPOP key                    移出并获取列表的第一个元素 
RPOP key                    移除并获取列表最后一个元素 
RPOPLPUSH source destination          移除列表的最后一个元素,并将该元素添加到另一个列表并返回 
LREM key count value             移除列表元素 
BLPOP key1 [key2 ] timeout          移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOP key1 [key2 ] timeout          移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
 
 
# 集合(set)常用命令
SADD key member1 [member2]         向集合添加一个或多个成员 
SCARD key                   获取集合的成员数 
SMEMBERS key                 返回集合中的所有成员 
SRANDMEMBER key [count]           返回集合中一个或多个随机数
SREM key member1 [member2]         移除集合中一个或多个成员 
SPOP key                   移除并返回集合中的一个随机元素
SDIFF key1 [key2]   
SISMEMBER key member             判断 member 元素是否是集合 key 的成员 
SMOVE source destination member       将 member 元素从 source 集合移动到 destination 集合 
返回给定所有集合的差集,SDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中
SINTER key1 [key2]              返回给定所有集合的交集
SUNION key1 [key2]              返回所有给定集合的并集 
SUNIONSTORE destination key1 [key2]     所有给定集合的并集存储在 destination 集合中 
 
 
# 有序集合(sorted set)
ZADD key score1 member1 [score2 member2]    向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key                      获取有序集合的成员数
ZCOUNT key min max                计算在有序集合中指定区间分数的成员数
ZRANGE key start stop [WITHSCORES]       通过索引区间返回有序集合成指定区间内的成员
ZRANGEBYSCORE key min max [WITHSCORES]     通过分数返回有序集合指定区间内的成员
ZRANK key member                 返回有序集合中指定成员的索引 
ZREM key member [member ...]           移除有序集合中的一个或多个成员   
ZREMRANGEBYRANK key start stop          移除有序集合中给定的排名区间的所有成员
ZREMRANGEBYSCORE key min max           移除有序集合中给定的分数区间的所有成员
    
 
# 消息队列?
 
 

Redis总结--【持续更新】的更多相关文章

  1. 透过面试题掌握Redis【持续更新中】

    本文已收录到1.1K Star的Github开源项目<面试指北>,想要了解更多内容,大家可以看一看这个项目,希望大家帮忙给一个star,谢谢了! <面试指北>项目地址:http ...

  2. SpringDataRedis持续更新部分值使用方式

    官方文档:https://docs.spring.io/spring-data/redis/docs/2.3.4.RELEASE/reference/html/#redis.repositories. ...

  3. redis日常使用汇总--持续更新

    redis日常使用汇总--持续更新 工作中有较多用到redis的场景,尤其是触及性能优化的方面,传统的缓存策略在处理持久化和多服务间数据共享的问题总是不尽人意,此时引入redis,但redis是单线程 ...

  4. Redis 面试题 - 收藏版 (持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  5. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  6. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  7. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

  8. 值得学习的C/C++开源项目 持续更新

    值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...

  9. 2020年腾讯实习生C++面试题&持续更新中(3)

    2020年腾讯实习生C++面试题&持续更新中(3) hello,大家好,我是好好学习,天天编程的天天. 来给大家大家分享腾讯实习生面经了. 天天希望大家看到面经后一定要做充分的准备,结合自己掌 ...

  10. 2020年腾讯实习生C++面试题&持续更新中(2)

    2020年腾讯实习生C++面试题&持续更新中(2) hello,大家好~ 我是好好学习天天,天天编程的天天,一个每天都死磕技术,及时分享的技术宅~ 昨天分享的题目不知道大家是否看过了,以后我计 ...

随机推荐

  1. 【转载】(String)、toString、String.valueOf的区别

    用于个人参考,查看请前往原地址http://blog.csdn.net/springk/article/details/6414017 问题讨论http://bbs.csdn.net/topics/2 ...

  2. HTML中的<%%>是什么意思

    背景: 今天在nutzwk框架中看到这段代码. 在index.html界面 <% layout("/layouts/platform.html"){ %> <di ...

  3. string类中getline函数的应用

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  4. Java入门教程十(抽象类接口内部类匿名类)

    抽象类(abstract) 一个类只定义了一个为所有子类共享的一般形式,至于细节则交给每一个子类去实现,这种类没有任何具体的实例,只具有一些抽象的概念,那么这样的类称为抽象类. 在面向对象领域,抽象类 ...

  5. Solr查询配置及优化【eDisMax查询解析器】

    一.简介 Lucene查询解析器语法支持创建任意复杂的布尔查询,但还有一些缺点,它不是用户查询处理的理想解决方案.这里面最大的问题是Lucene查询解析器的语法要求严格,一旦破坏就会抛出异常.指望用户 ...

  6. 【Art】物理课题——虹吸

    前言(无关闲话):在此之前,课题小组讨论了三.四次,得有10个小时了总共,但是具体还是在普及常识,那就在这里深入地讲一下. 进入正题—— 这就是虹吸的基本模型,再看一下百度的官方说法: “虹吸(sip ...

  7. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.3)- FlexSPI NOR连接方式大全(RT1010)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1010的FlexSPI NOR启动的连接方式. 在写完 <FlexSPI NOR启动连接方式(RT1015/ ...

  8. UIView绘制原理,异步绘制

    绘制原理 首先看一幅流程图 UIView调用setNeedsDisplay方法后,实际上并没有发生当前视图的绘制工作,而是在之后的某一时机进行绘制工作,为什么会在之后的某一时机进行绘制工作呢? 当UI ...

  9. 时间序列数据库(TSDB)初识与选择(InfluxDB、OpenTSDB、Druid、Elasticsearch对比)

    背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这 ...

  10. PostgreSQL与MySQL对比

    都属于开放源码的一员,性能和功能都在高速地提高和增强.MySQL AB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错 ...