NoSQL之Redis配置与优化

关系型数据库

  • 一个结构化的数据库,创建在关系模型基础上
  • 一般面向于记录
  • 包括
    • Oracle、MySQL、SQL Server、Microsoft Access、DB2等

非关系型数据库

  • 除了主流的关系型数据库外的数据库,都认为是非关系型
  • 包括
    • Redis、MongoDB、Hbase等

非关系型数据库产生背景

  • High performance——对数据库高并发读写需求
  • Huge Storage——对海量数据高效存储与访问需求
  • High Scalability && High Availability——对数据库高扩展性与高可用性需求

Redis简介

  • Redis基于内存运行并支持持久化
  • 采用key-value(键值对)的存储形式
  • 优点
    • 具有极高的读写速度
    • 支持丰富的数据类型
    • 支持数据的持久化
    • 原子性
    • 支持数据备份

Redis安装部署

[root@localhost ~]# tar zxvf redis-4.0.9.tar.gz 
[root@localhost ~]# cd redis-4.0.9
[root@localhost redis-4.0.9]# yum -y install gcc*
[root@localhost redis-4.0.9]# make 
[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install
[root@localhost redis-4.0.9]# cd utils/
[root@localhost redis-4.0.9]# ./install_server.sh  #初始化脚本
Please select the redis port for this instance: [6379] 
Selecting default: 6379 #指定端口
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf #配置文件位置
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log #日志位置
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379 #数据文件位置
Please select the redis executable path [] /usr/local/redis/bin/redis-server #指定可执行命令的位置
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/redis/bin/redis-server
Cli Executable : /usr/local/redis/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installatio
[root@localhost utils]# netstat -anpt | grep redis
[root@localhost utils]# vim /etc/redis/6379.conf 
#修改
bind 127.0.0.1 192.168.1.101 #监听地址
daemonize yes #守护进程
[root@localhost utils]# /etc/init.d/redis_6379 restart
#redis命令行
[root@localhost utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/
#进入redis
[root@localhost ~]# redis-cli
[root@localhost ~]# redis-cli  -h  192.168.10.101

127.0.0.1:6379> ping  #检测进程是否正常运行
PONG
127.0.0.1:6379> help #命令帮助
127.0.0.1:6379> help @list #类型帮助 "@"加类型
[root@localhost utils]# redis-benchmark -h 127.0.0.0 -p 6379 -c 100 -n 100000 #测试应答能力
[root@localhost utils]# redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100 #测试读写能力
[root@localhost utils]# redis-benchmark -t set,lpush -n 100000 -q 
#测试设置数据与拉取数据的性能

#redis数据库用法
127.0.0.1:6379> set k1 1 #设置键值
127.0.0.1:6379> keys *   #查看键值
127.0.0.1:6379> get  v1  #查看v1的值
127.0.0.1:6379> keys v*  #查看v开头的键
127.0.0.1:6379> exists v1 #查看该键是否存在 1:存在 0:不存在
127.0.0.1:6379> del k1 #删除键值
127.0.0.1:6379> rename #重命名键
127.0.0.1:6379> renamenx #重命名键时检测是否有重复的key
127.0.0.1:6379>dbsize  #键的总数量
#切换至序号为 10 的数据库 
127.0.0.1:6379>select 10 
#移动数据
127.0.0.1:6379> move k2 10
#清空当前数据库
127.0.0.1:6379> flushdb
#清空所有数据库
127.0.0.1:6379> flushall
数据类型描述
string字符串
list列表
set无序集合,自动去重
sorted set有序集合,不能去重
hash结构化数据生成hash值缓存到redis数据库中

Redis命令工具

​ Redis软件提供了多个命令工具。安装Redis服务时,所包含的软件工具会同时被安装到系统中,在系统中可以直接使用。常用命令工具作用如下

命令工具作用
redis-server用于启动Redis的工具
redis-benchmark用于检测Redis在本机运行效率
redis-check-aof修复AOF持久化文件
redis-chech-rdb修复RDB持久化文件
redis-cli命令行工具

Redis持久化

  • 持久化概述
    • Redis是运行在内存中,内存中的数据断电丢失
    • 为了能够重用Redis数据,或防止系统故障,需要将Redis中的数据写入到磁盘空间中,即持久化
  • 持久化分类
    • RDB方式:创建快照的方式获取某一时刻Redis中所有数据的副本
    • AOF方式:将执行的写命令写道文件的末尾,以日志的方式来记录数据的变化
#优化Redis
[root@localhost ~]#vim /etc/redis/6379.conf
#RDB持久化配置 
save 900 1 #在 900 秒(15 分钟)之后,如果至少有 1 个 key 发生变化,则 dump内存快照。 
save 300 10 #在 300 秒(5 分钟)之后,如果至少有 10 个 key 发生变化,则 dump内存快照。 
save 60 10000 #在 60 秒(1 分钟)之后,如果至少有 10000 个 key 发生变化,则dump 内存快照。 
dbfilename dump.rdb #RDB文件名称		
dir /var/lib/redis/6379 #RDB文件路径	
rdbcompression yes #是否进行压缩		

#AOF持久化配置
appendonly yes  #开启AOF持久化(默认为no)		
appendfilename "appendonly.aof "  #AOF文件名称		
appendfsync everysec
#三种同步方式
always #同步持久化,每次发生数据变化会立刻写入磁盘
everysec #默认推荐,每秒异步记录一次(默认值)
no  #不同步,交给操作系统决定如何同步
aof-load-truncated yes  	#忽略最后一条可能存在问题的指令
[root@localhost ~]# /etc/init.d/redis_6379 restart 

Redis密码设置

  1. 设置方法

    • 通过配置文件redis.conf设置密码

      [root@localhost ~]# vim /etc/redis/6379.conf 
      requirepass foobared #找到该行取消注释
      
    • 通过命令设置密码

      #进入到redis中
      [root@localhost ~]# redis-cli  -h  192.168.10.101
      #设置密码
      192.168.10.101:6379> config set requirepass 123456
      OK
      
  2. 连接方式

    • 连接时输入密码

      [root@localhost bin]# ./redis-cli -a 123456
      
    • 先连接再输入密码

      [root@localhost bin]# ./redis-cli127.0.0.1:6379> auth 123456
      
  3. 区别

    • 修改配置文件设置的密码永久生效;使用命令设置的密码临时生效,重启后失效
    • 修改配置文件设置的密码,需重启生效;使用命令设置设置的密码,退出后在登录生效,重启后失效
    • 命令的优先级高于配置文件的优先级
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值