聪明屋视角

关注互联网,关注技术开发,透析与分享移动互联网行业最新动态

linux redis

时间:2019-02-17 13:33:29    阅读:98582次 分类:解决方案
1、下载 wget http://download.redis.io/releases/redis-2.8.7.tar.gz下载后的文件在当前目录里 redis-2.8.7.tar.gz 2、编译安装 tar xf redis-2.8.7.tar.gz cd redis-2.8.7make make install 如果没有安装gcc的话会提示gcc not found 于是就需要安装一下...

1、下载
wget http://download.redis.io/releases/redis-2.8.7.tar.gz下载后的文件在当前目录里 redis-2.8.7.tar.gz
2、编译安装
tar xf redis-2.8.7.tar.gz
cd redis-2.8.7make
make install
如果没有安装gcc的话会提示gcc not found 于是就需要安装一下gcc: yum -y install gcc 因为刚开始把yum的源换成163的了,怎么都不行,后来逼迫无奈换回原来的,结果就好了 辛亏刚开始就备份了系统自带的,可见备份配置文件的好处 其实最好的方法应该是设置添加第三方的源并默认选择最快的,可以参考 装好之后重新执行一下上边的
3、创建配置文件

mkdir /etc/rediscp redis.conf /etc/redis/redis.conf
4、调整下内存分配使用方式并使其生效
echo “vm.overcommit_memory=1”>>/etc/sysctl.conf
此参数可用的值为0,1,2 #0表示当用户空间请求更多的内存时,内核尝试估算出可用的内存* *1表示内核允许超量使用内存直到内存用完为止* *2表示整个内存地址空间不能超过`swap+(vm.overcommit_ratio)%`的RAM值*
sysctl -p
5、 修改redis配置
vi /etc/redis/redis.conf
daemonize   yes 
    redis以守护进程的方式运行, #no表示不以守护进程的方式运行(会占用一个终端)  timeout 300 客户端闲置多长时间后断开连接,默认为0关闭此功能 loglevel  verbose 设置redis日志级别 logfile stdout 设置日志文件的输出方式,如果以守护进程的方式运行redis 并且日志输出设置为stdout,那么日志信息就输出到/dev/null里面去了
6、启动redis

redis-server /etc/redis/redis.conf
7、测试redis
[root@localhost redis]# redis-cli 127.0.0.1:6379> set name wayne
OK 127.0.0.1:6379> get name "wayne" 127.0.0.1:6379>


redis问题解决(MISCONF Redis is configured to save RDB snapshots)
    (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
    使用如下命令解决:
    config set stop-writes-on-bgsave-error no


1、安装编译工具

yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils  patch perl

2、安装tcl组件包(安装Redis需要tcl支持)

下载:http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
上传tcl8.6.1-src.tar.gz到/usr/local/src目录

cd /usr/local/src #进入软件包存放目录

tar  zxvf  tcl8.6.1-src.tar.gz  #解压



cd tcl8.6.1 #进入安装目录




cd unix




./configure --prefix=/usr   --without-tzdata    --mandir=/usr/share/man $([ $(uname -m) = x86_64 ] && echo --enable-64bit)   #配置




make #编译




sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@"  -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@"  -i tclConfig.sh




make install  #安装




make install-private-headers




ln -v -sf tclsh8.6 /usr/bin/tclsh




chmod -v 755 /usr/lib/libtcl8.6.so




3、安装Redis




下载:http://download.redis.io/redis-stable.tar.gz




上传redis-stable到/usr/local/src目录




cd /usr/local/src




tar -zxvf redis-stable.tar.gz #解压




mv redis-stable  /usr/local/redis #移动文件到安装目录




cd /usr/local/redis  #进入安装目录




make #编译




make install #安装




cd  /usr/local/bin #查看是否有下面文件,如果没有,拷贝下面文件到/usr/local/bin目录




cd /usr/local/redis




mkdir -p /usr/local/bin




cp -p redis-server /usr/local/bin




cp -p redis-benchmark /usr/local/bin




cp -p redis-cli /usr/local/bin




cp -p redis-check-dump /usr/local/bin




cp -p redis-check-aof /usr/local/bin




ln -s  /usr/local/redis/redis.conf  /etc/redis.conf  #添加配置文件软连接




vi /etc/redis.conf  #编辑




daemonize yes  #设置后台启动redis




:wq! #保存退出




redis-server /etc/redis.conf  #启动redis服务




redis-cli shutdown  #关闭redis




vi /etc/sysctl.conf #编辑,在最后一行添加下面代码




vm.overcommit_memory = 1




:wq! #保存退出




sysctl -p #使设置立即生效




4、设置redis开机启动




vi /etc/init.d/redis   #编辑,添加以下代码




#!/bin/sh




# chkconfig:   2345 90 10




# description:  Redis is a persistent key-value database




# redis    Startup script for redis processes




# processname: redis




redis_path="/usr/local/bin/redis-server"




redis_conf="/etc/redis.conf"




redis_pid="/var/run/redis.pid"




# Source function library.




. /etc/rc.d/init.d/functions




[ -x $redis_path ] || exit 0




RETVAL=0




prog="redis"




# Start daemons.




start() {




if [ -e $redis_pid -a ! -z $redis_pid ];then




echo $prog" already running...."




exit 1




fi




echo -n $"Starting $prog "




# Single instance for all caches




$redis_path $redis_conf




RETVAL=$?




[ $RETVAL -eq 0 ] && {




touch /var/lock/subsys/$prog




success $"$prog"




}




echo




return $RETVAL




}




# Stop daemons.




stop() {




echo -n $"Stopping $prog "




killproc -d 10 $redis_path




echo




[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog




RETVAL=$?




return $RETVAL




}




# See how we were called.




case "$1" in




start)




start




;;




stop)




stop




;;




status)




status $prog




RETVAL=$?




;;




restart)




stop




start




;;




condrestart)




if test "x`pidof redis`" != x; then




stop




start




fi




;;




*)




echo $"Usage: $0 {start|stop|status|restart|condrestart}"




exit 1




esac




exit $RETVAL




:wq! #保存退出




chmod 755 /etc/init.d/redis  #添加脚本执行权限




chkconfig --add redis  #添加开启启动




chkconfig --level 2345 redis on  #设置启动级别




chkconfig --list redis  #查看启动级别




service redis restart  #重新启动redis




系统运维  www.osyunwei.com  温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接




5、设置redis配置文件参数




mkdir -p /usr/local/redis/var  #创建redis数据库存放目录




vi /etc/redis.conf  #编辑




daemonize yes  #以后台daemon方式运行redis




pidfile "/var/run/redis.pid"  #redis以后台运行,默认pid文件路径/var/run/redis.pid




port 6379  #默认端口




bind 127.0.0.1 #默认绑定本机所有ip地址,为了安全,可以只监听内网ip




timeout 300 #客户端超时设置,单位为秒




loglevel verbose  #设置日志级别,支持四个级别:debug、notice、verbose、warning




logfile stdout  #日志记录方式,默认为标准输出,logs不写文件,输出到空设备/deb/null




logfile "/usr/local/redis/var/redis.log"  #可以指定日志文件路径




databases 16  #开启数据库的数量




save 900 1




save 300 10




save 60 10000




创建本地数据库快照,格式:save * *




900秒内,执行1次写操作




300秒内,执行10次写操作




60秒内,执行10000次写操作




rdbcompression yes #启用数据库lzf压缩,也可以设置为no




dbfilename dump.rdb  #本地快照数据库名称




dir "/usr/local/redis/var/"   #本地快照数据库存放目录




requirepass 123456  #设置redis数据库连接密码
1、下载




wget http://download.redis.io/releases/redis-2.8.7.tar.gz下载后的文件在当前目录里 redis-2.8.7.tar.gz
2、编译安装




tar xf redis-2.8.7.tar.gz
cd redis-2.8.7make
make install
如果没有安装gcc的话会提示gcc not found 于是就需要安装一下gcc: yum -y install gcc 因为刚开始把yum的源换成163的了,怎么都不行,后来逼迫无奈换回原来的,结果就好了 辛亏刚开始就备份了系统自带的,可见备份配置文件的好处 其实最好的方法应该是设置添加第三方的源并默认选择最快的,可以参考 装好之后重新执行一下上边的
3、创建配置文件




mkdir /etc/rediscp redis.conf /etc/redis/redis.conf
4、调整下内存分配使用方式并使其生效




echo “vm.overcommit_memory=1”>>/etc/sysctl.conf
此参数可用的值为0,1,2 #0表示当用户空间请求更多的内存时,内核尝试估算出可用的内存* *1表示内核允许超量使用内存直到内存用完为止* *2表示整个内存地址空间不能超过`swap+(vm.overcommit_ratio)%`的RAM值*
sysctl -p
5、 修改redis配置




vi /etc/redis/redis.conf
daemonize   yes 
    redis以守护进程的方式运行, #no表示不以守护进程的方式运行(会占用一个终端)  timeout 300 客户端闲置多长时间后断开连接,默认为0关闭此功能 loglevel  verbose 设置redis日志级别 logfile stdout 设置日志文件的输出方式,如果以守护进程的方式运行redis 并且日志输出设置为stdout,那么日志信息就输出到/dev/null里面去了
6、启动redis




redis-server /etc/redis/redis.conf
7、测试redis




[root@localhost redis]# redis-cli 127.0.0.1:6379> set name wayne
OK 127.0.0.1:6379> get name "wayne" 127.0.0.1:6379>


redis问题解决(MISCONF Redis is configured to save RDB snapshots)
    (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
    使用如下命令解决:
    config set stop-writes-on-bgsave-error no


1、安装编译工具




yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils  patch perl




2、安装tcl组件包(安装Redis需要tcl支持)




下载:http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz




上传tcl8.6.1-src.tar.gz到/usr/local/src目录




cd /usr/local/src #进入软件包存放目录




tar  zxvf  tcl8.6.1-src.tar.gz  #解压




cd tcl8.6.1 #进入安装目录




cd unix




./configure --prefix=/usr   --without-tzdata    --mandir=/usr/share/man $([ $(uname -m) = x86_64 ] && echo --enable-64bit)   #配置




make #编译




sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@"  -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@"  -i tclConfig.sh




make install  #安装




make install-private-headers




ln -v -sf tclsh8.6 /usr/bin/tclsh




chmod -v 755 /usr/lib/libtcl8.6.so




3、安装Redis




下载:http://download.redis.io/redis-stable.tar.gz




上传redis-stable到/usr/local/src目录




cd /usr/local/src




tar -zxvf redis-stable.tar.gz #解压




mv redis-stable  /usr/local/redis #移动文件到安装目录




cd /usr/local/redis  #进入安装目录




make #编译




make install #安装




cd  /usr/local/bin #查看是否有下面文件,如果没有,拷贝下面文件到/usr/local/bin目录




cd /usr/local/redis




mkdir -p /usr/local/bin




cp -p redis-server /usr/local/bin




cp -p redis-benchmark /usr/local/bin




cp -p redis-cli /usr/local/bin




cp -p redis-check-dump /usr/local/bin




cp -p redis-check-aof /usr/local/bin




ln -s  /usr/local/redis/redis.conf  /etc/redis.conf  #添加配置文件软连接




vi /etc/redis.conf  #编辑




daemonize yes  #设置后台启动redis




:wq! #保存退出




redis-server /etc/redis.conf  #启动redis服务




redis-cli shutdown  #关闭redis




vi /etc/sysctl.conf #编辑,在最后一行添加下面代码




vm.overcommit_memory = 1




:wq! #保存退出




sysctl -p #使设置立即生效




4、设置redis开机启动




vi /etc/init.d/redis   #编辑,添加以下代码




#!/bin/sh




# chkconfig:   2345 90 10




# description:  Redis is a persistent key-value database




# redis    Startup script for redis processes




# processname: redis




redis_path="/usr/local/bin/redis-server"




redis_conf="/etc/redis.conf"




redis_pid="/var/run/redis.pid"




# Source function library.




. /etc/rc.d/init.d/functions




[ -x $redis_path ] || exit 0




RETVAL=0




prog="redis"




# Start daemons.




start() {




if [ -e $redis_pid -a ! -z $redis_pid ];then




echo $prog" already running...."




exit 1




fi




echo -n $"Starting $prog "




# Single instance for all caches




$redis_path $redis_conf




RETVAL=$?




[ $RETVAL -eq 0 ] && {




touch /var/lock/subsys/$prog




success $"$prog"




}




echo




return $RETVAL




}




# Stop daemons.




stop() {




echo -n $"Stopping $prog "




killproc -d 10 $redis_path




echo




[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog




RETVAL=$?




return $RETVAL




}




# See how we were called.




case "$1" in




start)




start




;;




stop)




stop




;;




status)




status $prog




RETVAL=$?




;;




restart)




stop




start




;;




condrestart)




if test "x`pidof redis`" != x; then




stop




start




fi




;;




*)




echo $"Usage: $0 {start|stop|status|restart|condrestart}"




exit 1




esac




exit $RETVAL




:wq! #保存退出




chmod 755 /etc/init.d/redis  #添加脚本执行权限




chkconfig --add redis  #添加开启启动




chkconfig --level 2345 redis on  #设置启动级别




chkconfig --list redis  #查看启动级别




service redis restart  #重新启动redis




系统运维  www.osyunwei.com  温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接




5、设置redis配置文件参数




mkdir -p /usr/local/redis/var  #创建redis数据库存放目录




vi /etc/redis.conf  #编辑




daemonize yes  #以后台daemon方式运行redis




pidfile "/var/run/redis.pid"  #redis以后台运行,默认pid文件路径/var/run/redis.pid




port 6379  #默认端口




bind 127.0.0.1 #默认绑定本机所有ip地址,为了安全,可以只监听内网ip




timeout 300 #客户端超时设置,单位为秒




loglevel verbose  #设置日志级别,支持四个级别:debug、notice、verbose、warning




logfile stdout  #日志记录方式,默认为标准输出,logs不写文件,输出到空设备/deb/null




logfile "/usr/local/redis/var/redis.log"  #可以指定日志文件路径




databases 16  #开启数据库的数量




save 900 1




save 300 10




save 60 10000




创建本地数据库快照,格式:save * *




900秒内,执行1次写操作




300秒内,执行10次写操作




60秒内,执行10000次写操作




rdbcompression yes #启用数据库lzf压缩,也可以设置为no




dbfilename dump.rdb  #本地快照数据库名称




dir "/usr/local/redis/var/"   #本地快照数据库存放目录




requirepass 123456  #设置redis数据库连接密码


芜湖市聪明屋智能科技有限公司(原中江网络),成立于2005年,经过10多年定制开发经验,积累了大量技术储备和定制开发经验,率先创建安徽省内自主研发的云计算平台,具有大数据、高并发等高强度计算能力,为众多政府、学校、公安部门、中小企业解决数据计算与管理难题。2013年公司内部专门创建电商服务部,为企业提供全方位电商解决方案与配套服务。多次获得国家、省市级领导接见,被国内近20家电视台、报纸媒体争相报道。至今,聪明屋智能科技服务过上市公司、大型国企、各类私企超800家,为多家公司提供各类政务系统、app开发定制、微信小程序开发定制、智能家居、电商系统、连锁收银等技术解决方案服务。同时,聪明屋智能科技在智能硬件方面、区块链应用方面持续投入关注及创新。

聪明屋智能科技