redis非关系型数据库

Redis是一款非关系型数据库,常用于提升数据库查询速度,作为数据缓存。本文介绍了Redis的四大数据类型:string、list、set和hash,以及其高并发、海量存储和高可用性的特点,适用于处理大规模并发访问和存储海量数据的场景。
摘要由CSDN通过智能技术生成

Redis非关系型数据库

NoSQL概念

Not Only SQL:Not-Only SQL指的就是非关系型数据库,它是关系型数据库有益的补充。最终的数据还是保存在关系型数据库中。非关系型数据库主要是提升数据库的查询速度,一般做为数据的缓存来使用。

为什么要使用NOSQL

具体表现为对如下三高问题的解决:

High Performance - 数据库高并发访问

​ 在同一个时间点,同时有海量的用户并发访问。往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。

  • 如天猫的双11,从凌晨0点到2点这段时间,每秒达到上千万次的访问量。

  • 12306春运期间,过年回家买火车抢票的时间,用户不断查询有没有剩余票。

Huge Storage - 海量数据的存储

​ 数据库中数据量特别大,数据库表中每天产生海量的数据。

​ 类似QQ,微信,微博,每天用户产生海量的用户动态,每天产生几千万条记录。对于关系数据库来说,在一张几亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。

High Scalability && High Availability- 高可扩展性和高可用性的需求

​ 关系型数据库进行扩展和升级是比较麻烦的一样事,对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。

​ 非关系型数据库可以通过不断的添加服务器节点来实现扩展,而不需对原有的数据库进行维护。

Redis
  • redis 自身是一个 Map,所有数据采用k-v形式存储的数据库

  • 官网提供了Linux版的Redis下载

    http://redis.io/download

  • Windows版的Redis,下载地址如下:

    https://github.com/MSOpenTech/redis/tags

  • 默认端口号:6379

Redis数据类型(4种常用)
string类型:
  • 字符串
  • 数据最大存储量:512MB
  • HashMap<String, String>

常用命令

命令功能
set 键 值存入字符串类型的键和值,如果键不存在就是添加,存在就是修改
setnx 键 值键不存在就是添加,存在不做任何操作,不会覆盖以前的键和值
get 键通过键获取值
del 键通过键删除键和值
list类型
  • 列表:元素可以重复,元素是有索引号,有先后顺序的
  • HashMap<String, List>

常用命令

命令行为
lpush 键 元素 元素从左边添加1个或多个元素
rpush 键 元素 元素从右边添加1个或多个元素
lpop 键删除最左边的一个元素,并且返回
rpop 键删除最右边的一个元素,并且返回
lrange 键 开始 结束查找指定索引范围内元素返回,每个元素有2个索引号
索引号从左向右:0~length-1
索引号从右向左:-1~-length
如果要获取整个列表中所有的元素,索引号范围如何写?0~-1
llen 键获取列表中有多少个元素
set类型
  • 集合:元素是不可重复的,元素没有索引号,没有先后顺序的

常用命令

命令行为
sadd mapkey fieldkey value从左边添加1个或多个元素
rpush 键 元素 元素从右边添加1个或多个元素
lpop 键删除最左边的一个元素,并且返回
rpop 键删除最右边的一个元素,并且返回
lrange 键 开始 结束查找指定索引范围内元素返回,每个元素有2个索引号
索引号从左向右:0~length-1
索引号从右向左:-1~-length
如果要获取整个列表中所有的元素,索引号范围如何写?0~-1
llen 键获取列表中有多少个元素
hash类型
  • 值由多个键值对组成
  • 底层使用哈希表结构实现数据存储
  • HashMap<String, Map<String, String>>

常用命令

命令行为
hset key v1 v2添加key的值
hsmembers key获取全部数据
srem key v1 v2删除数据
sismember key v1判断集合中是否包含指定数据
数据库指令

redis为每个服务提供由16个数据库,编号0到15

常用命令

命令行为
select index切换到数据库(0-15)
move key indexkey移动到index数据库(0-15)
flushdb清除当前数据库的数据
flushall清除所有数据库的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值