redis配置与优化

关系数据库与非关系型数据库

1、关系数据库
关系数据库是一个结构化数据库,创建在模型基础上一般面向记录。他借助于集合代数等数学概念和方法来处理数据库中的数据。包括oracle 、mysql、sql server、micrsoft access、db2
2、非关系型数据库
处了主流的关系型数据库以外的数据库,都认为是非关系型的
包括redis、mongbd、hbase、couhdb

redis简介

redis(remotedictionaryserver、远程字典型)是一个开源的、使用c语言编写的nosql数据库。redis基于内存运行并并持久化,采用key-value(键值对)的储存形式,是目前分布式架构中不可或缺的一环
redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个redis进程,而redis的实际处理速度则是完全依靠主进程的执行效率。若在服务器上只运行一个redis进程,当多个客户端同时访问时、服务器的处理能力是会有一定程度的下降;若在同一台服务器上开启多个redis进程,redis会提高并发处理能力的同时会给服务器的cpu造成很大压力。也就是说在实际生产环境中,需要根据实际的需求来决定开启多少个redis进程。若对高并发要求更高一些,可能会考虑在同一台服务其上开启多个进程;若cpu资源比较紧张,采用单进程即可

redis优点

  • 具有极高的数据读写速度,数据读写的速度最高可达到110000次/s,数据写入速度最快可达到81000次/s
  • 支持丰富的数据类型,不仅仅支持简单的key-value类型的数据,还支持strings、lists、hashes、sets以及ordered sets
  • 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • 原子性,redis所有操作都是原子性的
  • 支持数据备份,即master-salve模式的数据备份
    redis作为基于内存运行的数据库,缓存是最常应用的场景之一,除此以外,redis常见应用场景还包括:获取最新n个数据的操作、排行榜类应用、计数器应用、存储关系、实时分析系统、日志记录

redis部署

Redis 的安装相对于其他服务比较简单,首先需要到 Redis 官网(https://www.redis.io)
下载相应的源码软件包, 然后上传至 Linux 系统的服务器中进行解压
将redis-5.0.4.tar.gz上传到/opt目录下

[root@localhost opt]# ls
redis-5.0.4.tar.gz
[root@localhost opt]# tar xzvf redis-5.0.4.tar.gz 
[root@localhost opt]# cd redis-5.0.4/
//安装环境
[root@localhost opt]#  yum -y install gcc gcc-c++ make perl
[root@localhost redis-5.0.4]# make
//make到指定目录,安装过程中,更改安装路径可以用make PRRFIX=安装路径 install
[root@localhost redis-5.0.4]# make PREFIX=/usr/local/redis install 
创建软连接
[root@localhost redis-5.0.4]# ln -s /usr/local/redis/bin/* /usr/local/bin/
[root@localhost redis-5.0.4]# cd utils/
执行脚本
[root@localhost utils]# ./install_server.sh
//除特殊标记一路回车
Welcome to the redis service installer
This script will help you easily set up a running redis server
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/bin/redis-server] /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/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!
/var/run/redis_6379.pid exists, process is already running or crashed
Installation successful!
[root@localhost utils]# netstat -lnupt | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      23816/redis-server  

安装完成, 可通过 Redis 的服务控制脚本/etc/init.d/redis_6379 来对 Redis 服务进
行控制, 如停止 Redis 服务、 启动 Redis 服务、 重启 Redis 服务、 查看 Redis 运行状态。

[root@localhost utils]# /etc/init.d/redis_6379 stop  停止redis服务
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
[root@localhost utils]# /etc/init.d/redis_6379 start              ####启动 Redis 服务
Starting Redis server...
[root@localhost utils]# /etc/init.d/redis_6379 restart            ####重启 Redis 服务
Stopping ...
Redis stopped
Starting Redis server...
[root@localhost utils]# /etc/init.d/redis_6379 status              ####查看 Redis 运行状态
Redis is running (23867)

配置参数进入redis配置文件

[root@localhost utils]#  vi /etc/redis/6379.conf
bind 127.0.0.1 192.168.175.132            ###需要更改   加本端的IP地址
port 6379                                               ###默认不需要更改    端口
daemonize yes                                       ###默认不需要更改    启用守护进程
pidfile /var/run/redis_6379.pid            ###默认不需要更改   指定 PID 文件
loglevel notice                                        ###默认不需要更改   日志级别
logfile /var/log/redis_6379.log            ###默认不需要更改   指定日志文件
[root@localhost utils]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...
[root@localhost utils]

redis命令工具
Redis 数据库系统也是一个典型的 C/S(客户端/服务器端) 架构的应用, 要访问 Redis
数据库需要使用专门的客户端软件。 Redis 服务的客户端软件就是其自带的 redis-cli 命令
行工具。 使用 redis-cli 连接指定数据库, 连接成功过后会进入提示符为“远程主机 IP 地
址: 端口号>” 的数据库操作环境。 用户可以输入各种操作语句对数据库进行管理。 如执行
ping 命令可以检测 redis 服务是否启动。

[root@localhost ~]# redis-cli             ####连接本机 Redis 数据库
127.0.0.1:6379> ping                           ####检测 redis 服务是否启动
PONG

在进行数据库连接操作时, 可以通过选项来指定远程主机上的 Redis 数据库, 命令语法
为 redis-cli -h host -p port -a password。 其中, -h 指定远程主机、 -p 指定 Redis 服
务的端口号、 -a 指定密码。 若不添加任何选项表示, 连接本机上的 Redis 数据库; 若未设
置数据库密码可以省略-a 选项。 例如执行以下命令可连接到主机为 192.168.10.161, 端口
为 6379 的 Redis 数据库, 并查看 redis 服务的统计信息。 若要退出数据库操作环境, 执行
“exit” 或“quit” 命令即可返还原来的 Shell 环境

[root@localhost ~]# redis-cli -h 192.168.175.132 -p 6379
192.168.175.132:6379>
192.168.175.132:6379> info
# Server
redis_version:5.0.4
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:49747876a18d5ef5
redis_mode:standalone
os:Linux 3.10.0-957.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:68681
run_id:eb73136e6091d1099c95cdadda3669eab6beeb7d
tcp_port:6379
uptime_in_seconds:32
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:11236437
executable:/usr/local/redis/bin/redis-server
config_file:/etc/redis/6379.conf
[root@localhost ~]#redis-cli
127.0.0.1:6379> help @list     ####查看所有与 List 数据类型的相关命令
127.0.0.1:6379>help set  ####查看 set 命令的命令帮助

redis-benchmark 测试工具
redis-benchmark 是官方自带的 Redis 性能测试工具, 可以有效的测试 Redis 服务的性
能。 基本的测试语法为 redis-benchmark [option] [option value]。

-h: 指定服务器主机名。
-p: 指定服务器端口。
-s: 指定服务器 socket。
-c: 指定并发连接数。
-n: 指定请求数。
-d: 以字节的形式指定 SET/GET 值的数据大小。
-k: 1=keep alive 0=reconnect 。
-r: SET/GET/INCR 使用随机 key, SADD 使用随机值。
-P: 通过管道传输请求。
-q: 强制退出 redis。 仅显示 query/sec 值。
–csv: 以 CSV 格式输出。
-l: 生成循环, 永久执行测试。
-t: 仅运行以逗号分隔的测试命令列表。
-I: Idle 模式。 仅打开 N 个 idle 连接并等待。
结合上述选项, 可以针对某台 Redis 服务器进行性能检测, 如执行 redis-benchmark -h
192.168.175.132 -p 6379 -c 100 -n 100000 命令即可向 IP 地址为 192.168.175.132、 端口
为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能。

[root@localhost ~]# redis-benchmark -h 192.168.175.132 -p 6379 -c 100 -n 100000

Redis 数据库常用命令
前面提到, Redis 数据库采用 key-value(键值对) 的数据存储形式。 所使用的命令是
set 与 get 命令。

  • set: 存放数据, 基本的命令格式为 set key value。
  • get: 获取数据, 基本的命令格式为 get key。
    例如在 Redis 的命令行模式下执行” set teacher zhanglong”, 表示在当前数据库下存
    放一个 key 为 teacher, value 为 zhanglong 的数据, 而执行“getteacher“命令即可查看
    刚才存放的数据
[root@localhost ~]# redis-cli 
127.0.0.1:6379> set css 5
OK
127.0.0.1:6379> get css
"5"

key 相关命令
在 Redis 数据库中, 与 key 相关的命令主要包含以下几种
1) keys
使用 keys 命令可以取符合规则的键值列表, 通常情况可以结合*、 ? 等选项来使用

[root@localhost ~]# redis-cli 
127.0.0.1:6379>set k1 1
OK
127.0.0.1:6379>set k2 2
OK
127.0.0.1:6379>set k3 3
OK
127.0.0.1:6379>set v1 4
OK
127.0.0.1:6379>set v5 5
OK
127.0.0.1:6379>KEYS *            ####查看当前数据库中所有键
1) "teacher"
2) "v1"
3) "k3"
4) "k1"
5) "k2"
6) "v5"
127.0.0.1:6379>set v22 5
OK
127.0.0.1:6379>KEYS v* //查看当前数据库中以 v 开头的数据
1) "v1"
2) "v22"
3) "v5"
127.0.0.1:6379>KEYS v? //查看当前数据库中以 v 开头后面包含任意一位的数据
1) "v1"
2) "v5"
127.0.0.1:6379>KEYS v?? //查看当前数据库中以 v 开头 v 开头后面包含任意两位的数据
1) "v22"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值