什么是Redis(默认端口6379)
套用人家的话说、它是一个开源的 用C语言编写的,支持内存,也支持持久化日志型,KEY-VALUE的数据库,还鸡儿提供了多种语言API 很是优秀(特色持久化)~
支持多种数据类型:字符串,列表(list),集合(sets),有序集合(sort sets),哈希表(hashs)
相比较于Memcache 它可以做存储,mc只支持一种数据类型,Redis支持多种。
读每秒 11W 写 8.6W
Redis数据存储在内存当中、持久化的时候可以将数据 写入磁盘,性能虽然不错 但可能丢失数据。还可以 使用类似于Mysql的方式,记录更新日志。
配置Redis的主从同步对于提高读取性能 非常不错。
迫不及待的
安装方式任选:
1、从Redis官网(https://redis.io/download)下载压缩包 FTP上传到服务器,你觉着看得上眼的任意目录(例:/usr/local/webserver/redis)
2、wget http://download.redis.io/releases/redis-5.0.0.tar.gz 直接下载到服务器
解压缩包 例:tar zxf redis-5.0.0.tar.gz
进入解压后的目录 cd redis-5.0.0
编译源程序 make
这里需要注意权限问题 如果权限不够 ,需要sudo make
但是在make的时候有可能发生错误
错误1
cc: 错误:../deps/jemalloc/lib/libjemalloc.a:没有那个文件或目录
make[1]: *** [redis-server] 错误 1
make[1]: 离开目录“/src/redis-5.0.0/src”
make: *** [all] 错误 2
解决办法:编辑src/.make-settings里的OPT,改为OPT=-O2 -march=i686
错误2
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb adlist.c
make: cc:命令未找到
make: *** [adlist.o] 错误 127
解决办法:make install gcc
错误3
CC adlist.o
adlist.c:1:0: 错误:您选择的 CPU 不支持 x86-64 指令集
/* adlist.c - A generic doubly linked list implementation
^
make[1]: *** [adlist.o] 错误 1
make[1]: 离开目录“/src/redis-5.0.0/src”
make: *** [all] 错误 2
这个错误是也因为 上面的OPT=-O2 -march=i686导致的
解决办法:删除-march=686 然而这个时候神奇的事情发生了
删除后运行 sudo make 提示OK
Hint: It's a good idea to run 'make test' ;) MMP?????
编译无报错后进入src 将配置文件移动到redis目录 例:sudo make install PREFIX=/usr/local/webserver/redis
将配置文件移到redi mv redis.conf /usr/local/webserver/redis/etc/
如果没有etc创建一个就是 mkdir /usr/local/webserver/redis/etc
启动Redis服务& 服务需要的配置
/usr/local/webserver/redis/bin/redis-server /usr/local/webserver/redis/ect/redis.conf
后台运行
设置Redis 后台运行 vim /usr/local/webserver/redis/etc/redis.conf
将daemonize 的值更改为 yes
试用试用
客户端链接/usr/local/webserver/redis/bin/redis-cli
停止服务器 /usr/local/redis/bin/redis-cli shutdown
OR pkill redis-server
开机自启
修改文件 vim /etc/rc.local
在末尾加入如下 即可
/usr/local/webserver/redis/bin/redis-server /usr/local/webserver/redis/ect/redis.conf
配置环境变量
1、sudo vi /etc/profile
2、在文件末尾PATH上把bin目录将入到后面
PATH=$PATH:/xxxx/xxx/xxx:/usr/local/webserver/redis/bin
3、保存后退出 :wq
4、刷新环境变量 source /etc/profile
5、命令行中 直接输入 redis-cli 回车进入redis客户端
停止
/usr/local/webserver/redis/bin/redis-cli shutdown
OR pkill redis-server
bin目录文件说明
redis-benchmark:redis性能测试工具
redis-check-aof:检查aof日志的工具
redis-check-dump:检查rdb日志的工具
redis-cli:连接用的客户端
redis-server:redis服务进程
Redis配置说明
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:save** 设置redis进行数据库镜像的频率,第一个表示多长时间,第二个 表示执行多少次写操作,在一定时间内执行一定数量的写操作时,自动保存快照,可设置多个条件
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
这里我们可以修改系统配置文件来管理进程内存分配
追加 echo vm.overcommit_memory=1 >>/etc/sysctl.conf
或者 sysctl vm.overcommit_memory=1
或者 echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
数字含义:
0===>表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1===>表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2===>表示内核允许分配超过所有物理内存和交换空间总和的内存