redis

一 NoSQL

NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是 SQL"的意思,泛指非关系型的数据库。强调 Key-Value Stores 和文档数据库的优点。

  NoSQL 产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能

  1.  不遵循 SQL 标准。 (添加 insert 修改  update )
  2.  不支持 ACID。
  3. 远超于 SQL 的性能。

过去,关系型数据库(SQL Server、Oracle、MySQL)是数据持久化的唯一选择,但随着发展,关系型数据库存在以下问题。

  问题 1:不能满足高性能查询需求

  问题 2:应用程序规模的变大

三 NoSQL 的使用

  1.  对数据高并发的读写
  2. 海量数据的读写
  3. 对数据高可扩展性的

秒杀活动

NoSQL 不适用场景

  1. 需要事务支持
  2. 基于 sql 的结构化查询存储,处理复杂的关系,需要关系查询。

用不着 sql 的和用了 sql 也不行的情况,考虑用 NoSql

四【熟悉】常见的 NoSQL 及区别

1,常见的 NoSQL 数据库

2,区别

1,Memcached

  1.  很早出现的 NoSql 数据库
  2.  数据都在内存中,一般不持久化
  3. 支持简单的 key-value 模式,支持类型单一
  4. 一般是作为缓存数据库辅助持久化的数据库(MySQL)

2,Redis

  1.   几乎覆盖了 Memcached 的绝大部分功能
  2.   数据都在内存中,支持持久化,主要用作备份恢复
  3.   除了支持简单的 key-value 模式,还支持多种数据结构的存储,比如   list、set、hash、zset 等。
  4.   一般是作为缓存数据库辅助持久化的数据库

3,MongoDB

  1. 高性能、开源、模式自由(schema  free)的文档型数据库
  2. 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
  3. 虽然是 key-value 模式,但是对 value(尤其是 json)提供了丰富的查询功能
  4. 支持二进制数据及大型对象
  5. 可以根据数据的特点替代 RDBMS,成为独立的数据库。或者配合 RDBMS,存储特定的数

五【熟悉】Redis 简介

1,Redis 简介

  1.  Redis 是一个开源的 key-value 存储系统。
  2. 端口 6379

3,Redis 数据结构的多样性

4,Redis 的应用场景

1、数据缓存(提高访问性能)

查询概率》》 增删改的概率

将一些数据在短时间之内不会发生变化,而且它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。

2、会话缓存

session cache,主要适用于 session 共享   (string 类型)

3、排行榜/计数器

(NGINX+lua+redis 计数器进行 IP 自动封禁)(zset)

4、消息队列

(构建实时消息系统,聊天,群聊) (list)

5· 粉丝   (set)

  1. 用于存储对象   (hash)

面试题

string :会话信息

list:消息

set:粉丝 共同好友

zset :排行榜

hash: 存储对象

六【掌握】Redis 的安装及启动停止

1.下载 redis的压缩包

yum -y install wget 

wget https://download.redis.io/releases/redis-5.0.14.tar.gz

a.安装的时候先安装 redis 所依赖的环境

yum -y install gcc-c++

2.开始解压 redis

tar -zxvf redis-5.0.14.tar.gz

3.进入redis 文件夹

 cd redis-5.0.14

4.编译:

make

5.安装:

make PREFIX=/usr/redis install

6.启动redis

找到redis-server

cd /usr/redis/bin

 ./redis-server

使用客户端连接redis

  1. 修改redis.conf 文件

bind 0.0.0.0  所有的都可以连接

protected-mode no  关闭保护模式

Requirepass yyl 设置密码

  1. 配置开机启动:

vim /lib/systend/dydtem/redis.service

  1. 连接

操作redis

使用redis-cli 连接redis

七.Key

默认 16 个数据库,类似数组下标从 0 开始,初始默认使用 0 号库

 

dbsize 查看当前数据库的 key 的数量

flushdb 清空当前库

flushall 通杀全部库

keys * 获取当前库中的所有key

select 0 选择第一个库

move key 1  将当前的数据库 key 移动到某个数据库,目标库有,则不能移动

randomkey  从当前数据库中随机返回

type key 类型

del key 删除 key

exists key 判断是否存在 key

expire key 10   为给定的key设置过期时间  单位是秒

pexpire key 1000 给定的key设置过期时间 单位:毫秒

persist key 删除key的过期时间

ttl key 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期

八 常见的数据类型

string类型

1简介

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

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

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

2常用命令

设值取值

set key value

get key

  1.     *NX:当数据库中key不存在时,可以将key-value添加数据库
  2.     *XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
  3.     *EX:key的超时秒数
  4.     *PX:key的超时毫秒数

批量操作

  1. mset key1 key2 批量设置key   
  2. msetnx <key1><value1><key2><value2>  ..... 同时设置一个或多个 key-value 对,当且 仅当所有给定 key 都不存在 如果有一个存在就会不成功。
  3.   注意:有一个失败则都失败
  4.  mget key1 key2 批量获取
  5. setrange  <key><起始位置index><value>  #从 index 开始替换 value
  6. getrange  <key><起始位置><结束位置>  
  7. getrange name 0 -1 #字符串分段   0 -1 是全部   0 -2  ==n-1
  8. append  <key><value> #将给定的<value> 追加到原值的末尾
  9. strlen  <key> #获得值的长度

递增递减

  1. incr  <key>   将 key 中储存的数字值增1  只能对数字值操作,如果为空,新增值为1
  2.   示例:incr age
  3. decr  <key>  将 key 中储存的数字值减1 只能对数字值操作,如果为空,新增值为-1
  4.    示例:decr age #递减
  5. incrby / decrby  <key><步长>将 key 中储存的数字值增减。自定义步长。   
  6.    示例: incrby age 10 递增
  7.    示例: decrby age 10 递减
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值