文章目录

  • 前言
  • 一、Redis是什么?
  • 二、特点
  • 三、应用场景
  • 四、NoSQL
  • 五、常用命令
    • 1 Redis 字符串(String)
    • 2 Redis 哈希(Hash)
    • 3 Redis 列表(List)
    • 4 Redis 集合(Set)
    • 5 Redis 有序集合(sorted set)
    • 6 其他命令

前言

Redis是一个非关系型数据库(NoSQL),数据存储大多在内存上, 会定时以追加或者快照的方式刷新到硬盘中,所以Redis数据库读取写入的速度是非常快的,MySQL的数据是存储在硬盘上的,所以Redis的数据查询效率高于MySQL。


一、Redis是什么?

1 是一个高性能的(key/value)分布式内存数据库;
2 是一个NoSql数据库,基于内存运行也支持持久化
3 Redis的持久化方案有两种:RDB和AOF;
RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件(快照)。Redis 重启会通过加载dump.rdb文件恢复数据。
AOF 在Redis中默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

二、特点

1 Redis默认有16个库(DB0-DB15);
2 Redis是单线程的,最新版本的redis支持多线程的
3 支持数据库主从复制,主库master数据会同步到从库slave,同步策略有全量同步、增量同步
4 分布式系统下,Redis可以利用哨兵模式Sentinel监控主机工作状态,在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用;
5 单个Redis命令的执行是原子性的,但 Redis没有在事务上增加任何维持原子性的机制(批量Redis指令是非原子性的),所以 Redis 事务的执行并不是原子性的。

三、应用场景

1 高速缓存
2 分布式锁(乐观锁)

四、NoSQL

  • Redis
  • mongoDB

五、常用命令

1 Redis 字符串(String)

SET key value 赋值,设置key的值
SETNX key value 只有在key不存在时设置 key 的值
SETEX key seconds value 将值value关联到key,并将key的过期时间设为 seconds (以秒为单位)
APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾
GET key 取值,获取key的值

2 Redis 哈希(Hash)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

HSET key field value 将哈希表key中的字段field的值设为value
HMSET key field1 value1 field2 value2 给哈希表key中添加多个字段(field-value)
HSETNX key field value 只有在字段 field不存在时,设置哈希表字段的值
HKEYS key 获取哈希表中的所有字段
HVALS key 获取哈希表中的所有值
HMGET key field1 field2 获取所有指定字段的值
HLEN key 获取哈希表中字段的数量
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在
HDEL key field1 field2 删除一个或多个哈希表字段

3 Redis 列表(List)

字符串列表,按照插入顺序排序

LINDEX key index 通过索引获取列表中的元素
LLEN key 获取列表长度
LPUSH key value1 value2 将一个或多个值插入到列表头部
LPUSHX key value 将一个值插入到已存在的列表头部
LRANGE key start stop 获取列表指定范围内的元素,包括开始位置和结束位置的元素
LREM key count value 移除列表元素,count移除元素的个数,从列表头开始
LSET key index value 通过索引设置列表元素的值
LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
RPOP key 移除列表的最后一个元素,返回值为移除的元素。
RPUSH key value1 value2 在列表中添加一个或多个值
RPUSHX key value 为已存在的列表添加值

4 Redis 集合(Set)

Redis 的 Set 是 String 类型的无序集合,集合成员是唯一的,Set集合中的元素无序不可重复。

SADD key member1 [member2] 向集合添加一个或多个成员
SCARD key 获取集合的成员数
SISMEMBER key member 判断 member 元素是否是集合 key 的成员
SMEMBERS key 返回集合中的所有成员
SREM key member1 [member2] 移除集合中一个或多个成员
SSCAN key cursor MATCH [pattern] [COUNT] 迭代集合 #从1开始查询2个能够匹配a*的字段SSCAN set1 1 match a* 2

5 Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
score 分数
member 成员
ZCARD key 获取有序集合的成员数
ZRANK key member 返回有序集合中指定成员的索引
ZREM key member [member …] 移除有序集合中的一个或多个成员
ZSCORE key member 返回有序集中,成员的分数值
ZSCAN key cursor MATCH [pattern] [COUNT ] 迭代有序集合中的元素(包括元素成员和元素分值)

6 其他命令

SELECT index 选择指定下标的数据库
DBSIZE 当前库中key的个数
KEYS * 查看所有key的列表
EXPIRE key seconds 设置key的过期时间,单位秒
DEL key 删除key
EXISTS key 检查指定key是否存在
TYPE key 返回key的存储类型
RENAME key newkey 重命名key
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey
FLUSHDB 清空当前数据库
FLUSHALL 清空所有数据库

非关系型数据库——Redis相关推荐

  1. 添加lua_非关系型数据库Redis之Lua脚本

    [本文详细介绍了非关系型数据库Redis中Lua脚本的基本概念和使用方法,欢迎读者朋友们阅读.转发和收藏!] 1 Lua 简介 Lua 是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用 ...

  2. python引入redis_实操演练解读非关系型数据库—Redis

    在互联网发展的早期,那还是一个各路军阀混战,实战为王的时代,没有所谓正规军,搞定问题才是王道. 当然,那个时期也没有那么多问题,互联网还是个新鲜的词汇,能被称作是网民的人也都是"稀有物种&q ...

  3. 【机房报修管理系统】后端篇(九) 在SpringBoot配置非关系型数据库Redis

    原 [机房报修管理系统]后端篇(九) 在SpringBoot配置非关系型数据库Redis 2019年01月10日 14:18:48 CheungChingYin 阅读数:15 一.前情提要 在上一篇文 ...

  4. 非关系型数据库-redis应用场景

    关系型数据库与非关系型数据库 ----redis的应用场景: 1.redis由于数据的读取和操作都在内存当中操作,读写的效率较高,所以经常被用来做数据的缓存.把一些需要频繁访问的数据,而且在短时间之内 ...

  5. 介绍非关系型数据库redis

    介绍非关系型数据库redis 关系型和非关系型数据库 关系型数据库 非关系型数据库 两个数据库的区别 数据存储方式不同 扩展方式不同 多事务支持性不同 非关系型数据库的产生背景 基于"三高& ...

  6. NOSQL 非关系型数据库(redis)

    NOSQL 非关系型数据库(redis) ---------------------------------------------------------- 0. NoSQL 产品(key-valu ...

  7. 轻松掌握非关系型数据库Redis

    关系型数据库与nosql数据库区别 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 优点: 易于维护:都是使用表结构,格式一致: 使用方便:SQL语言通用,可用于复杂查询 ...

  8. Redis基于内存非关系型数据库

    Redis基于内存非关系型数据库 Redis:非关系型数据库介绍 特点及优点 1.开源的,使用C编写,基于内存且支持持久化,一般内存的东东关机重启就消失,但它不会. 2.高性能的Key-Value的N ...

  9. redis一:非关系型数据库

    非关系型数据库的特点 1. 数据模型比较简单. 2. 需要灵活性更强的IT系统. 3. 对数据库性能要求更高. 4. 不需要高度的数据一致性. 5. 对于给定key,比较容易映射复杂值的环境. red ...

最新文章

  1. 关于supervisor 挂载woker和worker linke worker 的同样的结束等待
  2. ubuntu linux 下 single node hadoop
  3. kafka 启动_「首席看Event Hub」如何在您的Spring启动应用程序中使用Kafka
  4. Inno Setup使用技巧
  5. 来,膜拜下android roadmap,强大的执行力
  6. linux内存管理_Linux内存管理(转)
  7. IMX8MM IMX8QXP芯片配置GPIO方向和数据
  8. 最新版网站推广完全手册
  9. 一文详解对称密钥加密
  10. Robotium-基础理论介绍
  11. t分布 u分布 卡方分布_方分布,F分布,t分布三者之间有什么关系
  12. Web前端面试 面试官常问问题
  13. centos7 firewalld ip转发设置
  14. 银河麒麟桌面V10微信不能登录
  15. 百度地图使用,以及一些api
  16. 电脑只有一个c盘怎么办?看我怎么一招解决!
  17. Java之throw和throws的区别
  18. EasyExcel v2.1.6单元格样式设置
  19. 疯狂足球——Android手机游戏开发(实习报告)
  20. 使用zlib库进行数据压缩、解压缩

热门文章

  1. G2Plot自定义tooltip的title
  2. Dagger 使用入门
  3. IBM中国论坛, 竟请了一颗橙子…
  4. 自定义检测图片加载失败指令
  5. C# wpf 使用d3d渲染dxva2解码数据
  6. csr 矩阵 编码_IATF CSR矩阵表
  7. ipad8和ipad air4的区别
  8. 大数据之Sqoop 二
  9. 树莓派mjpg-streamer实现监控及拍照功能调试
  10. 十年京东,十年技术发展—畅读《京东技术解密》