介绍 Redis 之前,先了解下 NoSQL (Not noly SQL)
不仅仅是 SQL 属于非关系型数据库;Redis 就属于非关系型数据库
传统的Mysql ,oracle ,sql server 等, 都是关系型数据库
为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从心
High performance - 高并发读写
Huge Storage - 海量数据的高效率存储和访问
High Scalablility && High Availability 高可扩展性和高可用性
NoSQL 产品 MongoDB Redis 等等 Redis目前主流
NoSQL的特点:
易扩展
灵活的数据模型
大数据量,高性能
高可用
高性能键值对数据库,支持的键值数据类型
字符串类型
列表类型
有序集合类型
散列类型
集合类型
Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
Redis支持五种数据类型:
string(字符串),hash(哈希),list(列表),set(无序集合)及 zset(sorted set:有序集合)
内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过 Redis Sentinel 提供高可用,通过Redis Cluster提供自动分区。
Redis 官网:https://redis.io/
Redis 学习教程:https://www.w3cschool.cn/redis/
www.redis.cn
www.redis.net.cn
Redis用途:
数据库
缓存
基于内存存储的数据库:redis、memcache
Redis的应用场景
缓存
任务队列
网站访问统计
数据过期处理
应用排行榜
分布式集群架构中的session分离
1、Redis 的服务端安装
gcc 编译 c 的,因为 redis 是 c 编写的,所以我们先安装下 gcc
wget 方式 下载 redis 压缩包:
wget http://download.redis.io/releases/redis-5.0.2.tar.gz(wget方式 下载redis压缩包)
或者
yum -y install wget
tar -xvf redis-5.0.2.tar.gz(解压)
redis-5.0.2/redis.conf
开启守护进程,不开启的话,不能做其他操作
#daemonize no
daemonize yes
不能操作如下:
./src/redis-server redis.conf
可以操作如下(指定redis.conf)
./src/redis-server redis.conf
./src/redis-cli (使用redis)
ping
开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
跟新防火墙规则
firewall-cmd --reload
防火墙列表
firewall-cmd --zone=public --list-ports
防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
/相当于Ctrl+F
n是查找下一个
可视化管理工具 redis-desktop-manager 安装与配置
redis-desktop-manager-0.8.8.384
2.1 双击 redis-desktop-manager-0.8.8.384.exe 即可
这个安装很简单的,我就不讲了哈,O(∩_∩)O
2.2 配置远程登录
vi redis-5.0.2/redis.conf #编辑redis配置文件
#bind 127.0.0.1 #注释这一行(69行)
2.3 配置密码登录
vi redis-5.0.2/redis.conf #编辑redis配置文件
#找到下面这一行并去除注释,并添加密码(396行)
#requirepass foobared #修改前
requirepass 123456 #修改后
注意:配置完成密码后,以后登录就密码按下面的命令进行登录
./redis-cli -h 127.0.0.1 -p 6379 -a 123456
2.4 重启 redis 或 ubuntu
service redis-server restart
#reboot
通过命令操作 redis (命令不区分大小写)
redis默认的数据库有16,mongodb是3个:admin/local/test
redis-cli #打开redis终端
select index #选择指定的数据库,默认的数据库有16,mongodb是3个:admin/local/test
#字符串
set name #保存
get name #获得
type name #查看类型
keys *
del name
#哈希(Hash),Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
hset key attr1 value1 attr2 value2
hget key attr1
hgetall key
#列表(List)
lpush key value1 value2 value3
llen key
lindex key index
lrange key start stop #stop可以为-1,到末尾的意思
#Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
sadd key value #sadd idcard 100
sadd key value1 value2 vlaue3
scard key
sscan key cursor [MATCH pattern] [COUNT count]
exists key #检查key是否存在
1、基于内存存储
2、redis 持久化策略
redis.conf
rdb
aop
问题:
1、redis的数据何时消失
2、何时redis与mysql数据会同步一次
redis默认采取的是rdb持久方式
rdb 持久化策略:
比如说redis存储了1000个key,当其中100key对应的值在60s发生了改变,那么久将redis与
mysql的数据进行同步一次。同步的机制,在redis.confg中进行设置
aof 持久化策略:
redis每改变内存中一条数据,就会将内存与mysql数据同步一次,并且记录日志。安全性更高,
数据不易丢失
rdb 与 aof结合使用
aof 特点:
1、数据是以文件的形式存储
2、每当数据发生改变的时候,都会记录一次日志,就同步一次数据库
rdb 特点:
1、数据是保存在内存,数据是容易丢失的,读写速度快
2、内存发生改变的时间,有redis.conf中的设置有关
900 10000
60 1
300 100
3、redis支持集群(单机多节点集群,多台Linux机器集群)
主从模式
redis集群最少要三台主机(多台机器集群)
通常公司会至少使用6台(主从模式)
在不使用集群时:是将所有静态数据放到一台Linux主机的内存中。
当数据量过大,一台机器的内存不足。那么会采用多台机器进行分散存储,将多台机器进行集群。
本章小结:
redis简介(基于内存存储、持久化特点、集群的概念)
redis的安装
redis server
gcc
通过网址从网上下载redis的Linux版本进行安装
解压 tat -xvf 。。。。
进到解压路径 通过make对该目录进行编译
可启动redis(启动后是不可再输入其他Linux命令)
需要修改redis.conf文件,设置为守护进程。
./src/redis-server redis.conf
./src/redis-cli
如果说左下角出现127.0.0.1,意味着redis安装成功
redis cli
redisdesktopmanager安装
装上了之后redis客户不能直接连接Linux上的redis
1、#bind 127.0.0.1
2、设置访问权限(123456)
3、开放防火墙端口
redis存取值的五种形式
string、hash、list、set、zset