您的位置:首页 > 数据库 > Redis

redis安装与IMagic和Jmagic安装

2014-03-11 14:13 232 查看
redis安装

$ wget http://download.redis.io/releases/redis-2.8.7.tar.gz
$ tar xzf redis-2.8.7.tar.gz

$ cd redis-2.8.7

$ make

make命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:

redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

在后面会有这几个命令的说明,当然是从网上抄的。。。

==修改配置文件

/etc/sysctl.conf

添加

vm.overcommit_memory=1
刷新配置使之生效

sysctl vm.overcommit_memory=1
补充介绍:
**如果内存情况比较紧张的话,需要设定内核参数:

echo 1 > /proc/sys/vm/overcommit_memory
内核参数说明如下:
overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
**编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当调整,比如:

daemonize yes #转为守护进程,否则启动时会每隔5秒输出一行监控信息

save 60 1000 #减小改变次数,其实这个可以根据情况进行指定

maxmemory 256000000 #分配256M内存

在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运 行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前 它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是redis.conf的主 要配置参数的意义:

daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。

appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

下面是一个略做修改后的配置文件内容:
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024


将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下

然后在命令行执行:

1

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

即可在后台启动redis服务,这时你通过

1

telnet 127.0.0.1 6379

即可连接到你的redis服务。

====、启动服务并验证

启动服务器

./redis-server



$redis-server /etc/redis.conf

查看是否成功启动

$ ps -ef | grep redis



./redis-cli ping

PONG

===、启动命令行客户端赋值取值

redis-cli set mykey somevalue

./redis-cli get mykey

===、关闭服务

$ redis-cli shutdown

#关闭指定端口的redis-server

$redis-cli -p 6380 shutdown

===、客户端也可以使用telnet形式连接。
[root@dbcache conf]# telnet 127.0.0.1 6379

Trying 127.0.0.1...

Connected to dbcache (127.0.0.1).

Escape character is '^]'.

set foo 3

bar

+OK

get foo

$3

bar

^]

telnet> quit

Connection closed.

=======================================================================================================

JMagick安装

环境:

yum -y install perl-devel perl-CPAN gcc* gcc-c++ zlib* libx*

*-----------/

*安装libtool*

./configure

make

make instll

*安装jpeg包:
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
tar -zvxf jpegsrc.v6b.tar.gz

cd jpeg-6b/

cp /usr/share/libtool/config.sub .

cp /usr/share/libtool/config.guess .

./configure --enable-shared --enable-static

make

mkdir -p /usr/local/man/man1
make install

*安装png包:先在http://sourceforge.net/projects/libpng/上下载最新的libpng包

tar -xzvf libpng-1.5.3

(如果遇到“[coders/coders_png_la-png.lo] 错误 1”要安装低版本的,不能安装高版本的)

cd libpng-1.2.12

yum install -y zlib

./ipconfigure

make

make install

*编译并安装tiff格式支持文件,

tar zvxf tiff-3.8.2.tar.gz

./configure

make

make install

wget http://downloads.jmagick.org/6.4.0/ImageMagick-6.4.0-0.tar.gz
cd ImageMagick-6.7.0

vi ./configure

然后找到下面这三个

--without-jpeg disable JPEG support

--without-png disable PNG support

--without-tiff disable TIFF support

改成

--without-jpeg=false disable JPEG support

--without-png=false disable PNG support

--without-tiff=false disable TIFF support

=====================================================================

[magick/libMagickCore.la] Error 1
yum install libx* -y

=====================================================================

./configure -with-quantum-depth=8 LDFLAGS='-L/usr/local/lib -ljpeg' --prefix=/opt/ImageMagick --enable-share -enable-static

make all

make install

================================================================================

问题

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl

/usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at Makefile.PL line 1.

BEGIN failed--compilation aborted at Makefile.PL line 1.

解决方法如下:

yum -y install perl-devel

yum -y install perl-CPAN

-------------------------------------

检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。

================================================================================

使用convert 看看是否可以转换文件

测试:convert -geometry 600x200 1503.jpg 1503_small.gif

wget http://downloads.jmagick.org/6.4.0/jmagick-6.4.0-src.tar.gz
安装JMagick包

tar xzvf jmagick-6.4.0.tar.gz

(# chmod * 否则这个包内的文件无权限执行)

autoconf

./configure --prefix=/opt/JMagick --with-magick-inc-dir=/opt/ImageMagick/include/ImageMagick/ --enable-share --enable-static --with-java-

home=/usr/java/jdk1.7.0_45/ --with-magick-home=/opt/ImageMagick/

make all

make install

(

测试JMagick,在test包里有Test.java 环境变量生效后再测试

# make test

# make javadoc

)

========================================================

这样就安装完成,接下来的就是配置环境变量。

vi /etc/profile

关于java的环境变量,此文http://blog.sina.com.cn/u/4964dd65010005sb有更详细的说明

加入:

JAVA_HOME="/usr/java/jdk6"(您自己的jdk地址)

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

(这行不要:////////export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar)

export PATH=$PATH:/opt/ImageMagick/bin:/opt/ImageMagick/lib

export LD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib

export DYLD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib

export CLASSPATH=$CLASSPATH:/opt/JMagick/lib

==========================================================================

测试通过的配置:

export JAVA_HOME=/usr/java/jdk1.7.0_51
export CLASSPATH=.:$JAVA_HOME/jre/lib/:$JAVA_HOME/lib/:/opt/ImageMagick/lib

export PATH=$PATH:$JAVA_HOME/bin:/opt/ImageMagick/bin:/opt/JMagick/lib

export LD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib

export DYLD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib

export CLASSPATH=$CLASSPATH:/opt/JMagick/lib

===========================================================================

执行命令:

ldconfig

将ImageMagick的库加入系统联接库

然后注销当前用户重新登录,便于环境变量修改生效,执行:convert logo: logo.gif

看是否正确生成一个logo.gif的图片文件。

=======================================================

如果要在Web Application Server(Resin,Tomcat),需要再运行时加入参数: -Djmagick.systemclassloader=no

或者在程序中写入:System.setProperty("jmagick.systemclassloader", "no");

命令行使用方法:

convert -resize 100x200 22.jpg(图片路径) 11.jpg(缩放后存放路径) 图片按比例缩放

convert -resize 100x200\! 22.jpg(图片路径) 11.jpg(缩放后存放路径) 强制按给定的宽高缩放

convert -crop 100(长)x200(高)+10(x坐标)+10(y坐标) 22.jpg(图片路径) 11.jpg(缩放后存放路径) 裁剪图片

----------------------------------------------------------------

如果还是不行.执行以下操作:

cp /opt/6.4.0/lib/jmagick.jar /usr/java/jdk1.7.0_51/jre/lib/ext/

cp /opt/6.4.0/lib/libJMagick-6.4.0.so /usr/java/jdk1.7.0_51/jre/lib/amd64/libJMagick.so

==================================

让大家分享一下,本人经过两天的学习,终于将最新版的ImageMagick与JMagick安装成功

作者:雷喜青

1、System.out.println(System.getProperty("java.library.path")).

直接用System.out.println(System.getProperty("java.library.path")).

打印出当前环境的路径,然后再把jmagick.dll或jmagick.so 复制到其中的一个路径文件夹中问题解决。

2、magick.MagickException: No image to scale

版本不匹配,要像下面这们,都是同一个版本号

ImageMagick-6.4.0-0.tar.gz

jmagick-6.4.0-src.tar.gz

3、magick.MagickException: Unable to retrieve handle

要调用 magick.MagickImage.destroyImages() 来关闭

4、no decode delegate for this image format

使用:identify -list format

判断有支持几种图片格式,没有的则需要安装对应的格式库

5、单线程转换每张图片大概50ms,两个线程却需要500ms

用convert --version 命令查看

看是否出现openMP字样,出现的话,是因为机器不支持openMP导致的。

需要重新编译./configure --disable-openmp 在进行安装

首先检查一下电脑里已经安装的ImageMagick版本:

convert -version

6、Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\jmagick.dll: Can't find dependent libraries

我在Windows xp上按照上面的流程安装完成,按理说应该没有问题了,但出现了以上错误。

我打开Eclipse已工作数个小时,然后在开发机器(我本机)Windows xp上安装ImageMagick-6.3.9-0-Q16-windows-dll.exe。也把jmagick.dll放入system32,在你的

java项目中使用jmagick.jar包处理图片。

就这么几步当然不会错,但在运行程序时还是出现了上面的错误。

解决:重启Eclipse。加载新的环境变量。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: