欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux下安装redis 启动,停止,连接

程序员文章站 2022-05-18 23:12:58
...

linux版下载地址

http://download.redis.io/releases/

windows版下载地址

https://github.com/MicrosoftArchive/redis/releases

 

一、安装

上传redis-3.2.6.tar.gz到/opt下

[root@dev opt]# tar -xvf redis-3.2.6.tar.gz

[root@dev opt]# cd redis-3.2.6

 

[root@dev redis-3.2.6]# make

  

指定安装目录PREFIX

[root@dev redis-3.2.6]# make PREFIX=/opt/redis install

 

#[root@dev redis-3.2.6]# make test

#All tests passed without errors!

 

 

[root@dev redis-3.2.6]# cd /opt/redis/bin

[root@dev bin]# ll

总用量 26336

-rwxr-xr-x. 1 root root 5578215 12月 28 15:31 redis-benchmark

-rwxr-xr-x. 1 root root   22169 12月 28 15:31 redis-check-aof

-rwxr-xr-x. 1 root root 7823872 12月 28 15:31 redis-check-rdb

-rwxr-xr-x. 1 root root 5706916 12月 28 15:31 redis-cli

lrwxrwxrwx. 1 root root      12 12月 28 15:31 redis-sentinel -> redis-server

-rwxr-xr-x. 1 root root 7823872 12月 28 15:31 redis-server

 

[root@dev ~]# cd /opt/redis

[root@dev redis]# ll

总用量 4

drwxr-xr-x. 2 root root 4096 12月 28 15:31 bin

 

二、配置

创建目录(非必须)

[root@dev redis]# mkdir conf(配置文件目录)

[root@dev redis]# mkdir db(数据库文件目录)

[root@dev redis]# mkdir logs(日志文件目录)

 

拷贝配置文件

[root@dev redis]# cp /opt/redis-3.2.6/redis.conf /opt/redis/conf

编辑配置文件

[root@dev redis]# vi /opt/redis/conf/redis.conf

 

#关闭保护模式

#protected-mode yes

protected-mode no

 

守护进程,在后台运行

#daemonize no

daemonize yes

 

设置pid文件路径

#pidfile /var/run/redis_6379.pid

pidfile /opt/redis/redis_6379.pid

 

#设置数据库文件路径

dbfilename dump.rdb

#dir ./

dir /opt/redis/db

 

#设置日志文件路径

#logfile ""

logfile /opt/redis/logs/redis.log

 

#设置连接密码

# requirepass foobared

requirepass redis326

 

#设置主密码(主从切换后才会用到)

# masterauth <master-password>

masterauth redis326

 

设置最大内存

# maxmemory <bytes>

maxmemory 2gb

 

三、应用

启动redis服务

[root@dev redis]# /opt/redis/bin/redis-server /opt/redis/conf/redis.conf

 

打开redis客户端,测试

[root@dev redis]# /opt/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a redis326

127.0.0.1:6379> set foo bar

OK

127.0.0.1:6379> get foo

"bar"

127.0.0.1:6379> quit (退出)

 

停止redis服务

[root@dev redis]# /opt/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a redis326 shutdown

 

杀进程

[root@dev redis]# ps -ef|grep redis

root     44525     1  0 19:47 ?        00:00:00 ./redis-server 127.0.0.1:6379    

root     44553 42778  0 19:47 pts/3    00:00:00 grep redis

[root@dev bin]# kill -9 44525

 

查看日志

[root@dev redis]tail -f /opt/redis/logs/redis.log

 

性能测试

 

[root@dev bin]# /opt/redis/bin/redis-benchmark -n 1000

 

在线文档

http://www.redis.net.cn/tutorial/3501.html

 

Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍

http://blog.csdn.net/truong/article/details/46711045

 

关于最大内存

RDB原理

在执行fork的时候操作系统(类Unix操作系统)会使用写时复制(copy-on-write)策略,即fork函数发生的一刻父子进程共享同一内存数据,当父进程要更改其中某片数据时(如执行一个写命令 ),操作系统会将该片数据复制一份以保证子进程的数据不受影响,所以新的RDB文件存储的是执行fork那一刻的内存数据。

 

多留一倍内存是最安全的。重写AOF文件和RDB文件的进程(即使不做持久化,复制到Slave的时候也要写RDB)会fork出一条新进程来,采用了操作系统的Copy-On-Write策略(如果父进程的内存没被修改,子进程与父进程共享Page。如果父进程的Page被修改, 会复制一份改动前的内容给新进程),留意Console打出来的报告,如"RDB: 1215 MB of memory used by copy-on-write"。在系统极度繁忙时,如果父进程的所有Page在子进程写RDB过程中都被修改过了,就需要两倍内存。

 

9482:M 19 Jan 15:45:41.038 * 10000 changes in 60 seconds. Saving...

9482:M 19 Jan 15:45:41.095 * Background saving started by pid 13017

13017:C 19 Jan 15:46:04.138 * DB saved on disk

13017:C 19 Jan 15:46:04.159 * RDB: 16 MB of memory used by copy-on-write

9482:M 19 Jan 15:46:04.231 * Background saving terminated with success

 

个人建议最大内存,设置成系统内存的1/2