一次一大波
Redis
是一种高性能的Key-Value数据库 NoSQL数据库 not only SQL 缓存型数据库
NoSQL介绍
NoSQL:一类新出现的数据库(not only sql),它的特点:
1.不支持SQL语法
2.存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是Key-Value形式
3.NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
· NoSQL中的产品种类相当多:
Mongodb
Redis
Hbase hadoop
Cassandra hadoop
NoSQL和SQL数据库的比较:
· 适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
· 两者在不断地取长补短,呈现融合趋势
Redis简介
· Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
· Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色
五种类型:string hash list set zset
Redis特性
· Redis 与其他 key - value 缓存产品有以下三个特点:
· Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
· Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
· Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
· 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
· 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
· 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
· 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
· 当前redis最新稳定版本是4.0,常用版本3.2版本。
· step1:下载
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
· step2:解压
tar -zxvf redis-3.2.8.tar.gz
· step3:复制,放到usr/local/redis⽬录下
sudo mv ./redis-3.2.8 /usr/local/redis/
· step4:进⼊redis⽬录
cd /usr/local/redis/
· step5:生成
这块安装c语言环境,因为redis是c语言编写的
a) 安装c语言编译器gcc
sudo apt-get install gcc
b) 安装编译命令make
sudo apt-get install make(这一步可能会出问题,根据提示执行命令)
c) 生成
sudo make(比较慢)
· step6:测试,这段运⾏时间会较⻓
sudo make test
cd
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make(时间比较长)
sudo make install
· step7:安装,将redis的命令安装到/usr/local/bin/⽬录
sudo make install (时间比较长)
a) redis-server redis服务器
b) redis-cli redis命令行客户端
c) redis-benchmark redis性能测试工具
d) redis-check-aof AOF文件修复工具
e) redis-check-rdb RDB文件检索工具
· step8:安装完成后,我们进入目录/usr/local/bin中查看
cd /usr/local/bin
ls -all
复制配置文件到etc目录下。下载安装完成
sudo cp /usr/local/redis/redis.conf /etc/redis/
二、配置
· Redis的配置信息在/etc/redis/redis.conf下。
· 查看
sudo vi /etc/redis/redis.conf
核心配置选项
· 绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip
bind 127.0.0.1
· 端⼝,默认为6379
port 6379
· 是否以守护进程运⾏
a) 如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务
b) 如果以⾮守护进程运⾏,则当前终端被阻塞
c) 设置为yes表示守护进程,设置为no表示⾮守护进程
d) 推荐设置为yes
daemonize yes
· 数据⽂件
dbfilename dump.rdb
· 数据⽂件存储路径
dir /var/lib/redis
· ⽇志⽂件
logfile /var/log/redis/redis-server.log
· 数据库,默认有16个
database 16
· 主从复制,类似于双机备份。
slaveof
1.3服务器端和客户端命令
服务器端
· 服务器端的命令为redis-server
· 可以使⽤help查看帮助⽂档
redis-server --help
· 不推荐使⽤服务的⽅式管理redis服务
· 启动
sudo service redis start
· 停⽌
sudo service redis stop
· 重启
· 个人习惯
ps -aux|grep redis 查看redis服务器进程
sudo kill -9 pid 杀死redis服务器
sudo redis-server /etc/redis/redis.conf 指定加载的配置文件
客户端
· 客户端的命令为redis-cli
· 可以使⽤help查看帮助⽂档
redis-cli --help
· 连接redis
redis-cli
· 运⾏测试命令
ping 返回pong
· 切换数据库
· 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select n
1.4数据库操作
数据库结构
· redis是key-value的数据结构,每条数据都是⼀个键值对
· 键的类型是字符串
· 注意:键不能重复
· 值的类型分为五种:
o 字符串string
o 哈希hash
o 列表list
o 集合set
o 有序集合zset
数据库操作行为
· 保存
· 修改
· 获取
· 删除
点击中⽂官⽹查看命令⽂档http://redis.cn/commands.html
二.搭建主从
主从概念
a) ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构
b) master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1
c) 通过主从配置可以实现读写分离
d) master和slave都是一个redis实例
主从配置
a) 修改etc/redis/redis.conf文件
sudo vi redis.conf
bind 本机IP
b) 重启redis服务
ps aux | grep redis
Sudo kill -9 12916
Sudo redis-server /etc/redis/redis.conf
配置从
a) 复制etc/redis/redis.conf文件
sudo cp redis.conf ./slave.conf
a) 修改redis/slave.conf文件
sudo vi slave.conf
b) 编辑内容
bind 本机IP
slaveof 主机IP加端口
port 6378
c) 开启redis服务
sudo redis-server slave.conf
d) 查看主从关系
redis-cli -h 本机IP info Replication