linux下安装redis
1下载安装包
wget http://download.redis.io/releases/redis-3.0.4.tar.gz
把安装包放入opt目录下,linux的软件都安装在opt下
/opt目录下,解压命令:tar -zxvf redis-3.0.4.tar.gz
tar -zxvf redis-3.0.4.tar.gz
进入目录:cd redis-3.0.4
[root@localhost redis-3.0.4]# ls -l
总用量 148 -rw-rw-r--. 1 root root 31391 9月 8 2015 00-RELEASENOTES -rw-rw-r--. 1 root root 53 9月 8 2015 BUGS -rw-rw-r--. 1 root root 1439 9月 8 2015 CONTRIBUTING -rw-rw-r--. 1 root root 1487 9月 8 2015 COPYING drwxrwxr-x. 6 root root 4096 3月 14 18:50 deps -rw-rw-r--. 1 root root 11 9月 8 2015 INSTALL -rw-rw-r--. 1 root root 151 9月 8 2015 Makefile -rw-rw-r--. 1 root root 4223 9月 8 2015 MANIFESTO -rw-rw-r--. 1 root root 5201 9月 8 2015 README -rw-rw-r--. 1 root root 41403 9月 8 2015 redis.conf -rwxrwxr-x. 1 root root 271 9月 8 2015 runtest -rwxrwxr-x. 1 root root 280 9月 8 2015 runtest-cluster -rwxrwxr-x. 1 root root 281 9月 8 2015 runtest-sentinel -rw-rw-r--. 1 root root 7109 9月 8 2015 sentinel.conf drwxrwxr-x. 2 root root 4096 3月 14 18:51 src drwxrwxr-x. 10 root root 4096 9月 8 2015 tests drwxrwxr-x. 5 root root 4096 9月 8 2015 utils
2 在redis-3.0.4目录下执行make命令
运行make命令时故 意出现的错误解析:
yum install gcc
gcc是linux下的一个编译程序,是C程序的编译工具。GCC(GNU Compiler Collection) 是 GNU(GNU's Not Unix) 计划提供的编译器家族,它能够支持 C, C++, Objective-C, Fortran, Java 和 Ada 等等程序设计语言前端,同时能够运行在 x86, x86-64, IA-64, PowerPC, SPARC 和 Alpha 等等几乎目前所有的硬件平台上。鉴于这些特征,以及 GCC 编译代码的高效性,使得 GCC 成为绝大多数自由软件开发编译的首选工具。虽然对于程序员们来说,编译器只是一个工具,除了开发和维护人员,很少有人关注编译器的发展,但是 GCC 的影响力是如此之大,它的性能提升甚至有望改善所有的自由软件的运行效率,同时它的内部结构的变化也体现出现代编译器发展的新特征。二次make
[root@localhost redis-3.0.4]# make cd src && make all make[1]: Entering directory `/opt/redis-3.0.4/src' CC adlist.o 在包含自 adlist.c:34 的文件中: zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录 zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required" make[1]: *** [adlist.o] 错误 1 make[1]: Leaving directory `/opt/redis-3.0.4/src' make: *** [all] 错误 2
运行 make distclean
[root@localhost redis-3.0.4]# make distclean cd src && make distclean make[1]: Entering directory `/opt/redis-3.0.4/src' rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html (cd ../deps && make distclean) make[2]: Entering directory `/opt/redis-3.0.4/deps' (cd hiredis && make clean) > /dev/null || true (cd linenoise && make clean) > /dev/null || true (cd lua && make clean) > /dev/null || true (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true (rm -f .make-*) make[2]: Leaving directory `/opt/redis-3.0.4/deps' (rm -f .make-*) make[1]: Leaving directory `/opt/redis-3.0.4/src'
执行make
3执行完毕之后执行make install
默认安装目录:usr/local/bin
Redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本 服务启动起来后执行
Redis-check-aof:修复有问题的AOF文件
Redis-check-dump:修复有问题的dump.rdb文件
Redis-cli:客户端,操作入口
Redis-sentinel:redis集群使用
Redis-server:Redis服务器启动命令如果没有在默认目录下则重新回到/opt/redis-3.0.4/目录下执行make,make install执行过后会显示安装目录或者使用命令whereis reids
启动
修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
启动 redis-server /myredis/redis.conf
连通测试 ping
/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件有些时候会自动生成环境变量可以直接在任何目录下执行,如果没有生成环境变量则只能在安装目录下使用./redis-server执行,或者自己设置环境变量
vim /etc/profile,在文件的末尾添加
REDIS_HOME=/opt/redis-3.0.4 PATH=/opt/redis-3.0.4/src:$PATH export REDIS_HOME PATH
设置完环境变量后可以在任何位置执行redis-server
make命令
make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。
make是用来编译的,它从Makefile中读取指令,然后编译。
make all:编译程序、库、文档等(等同于make)
make install:安装已经编译好的程序。复制文件树中到文件到指定的位置
make unistall:卸载已经安装的程序。
make clean:删除由make命令产生的文件
make distclean:删除由./configure产生的文件
make check:测试刚刚编译的软件(某些程序可能不支持)
make installcheck:检查安装的库和程序(某些程序可能不支持)
make dist:重新打包成packname-version.tar.gz
reids启动
为了不在原文件上修改配置建议在根目录下创建一个新的目录myredis
mkdir myredis
然后把配置文件redis.conf复制到myredis目录下
[root@localhost redis-3.0.4]# cp redis.conf /myredis/
查看配置文件
vim redis.conf
把no改为yes
################################ GENERAL ##################################### # By default Redis does not run as a daemon. Use 'yes' if you need it. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. daemonize yes
Redis daemonize介绍
A、redis.conf配置文件中daemonize守护线程,默认是NO。
B、daemonize是用来指定redis是否要用守护线程的方式启动。
daemonize 设置yes或者no区别daemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
daemonize:no: 当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。usr目录存放应用程序和文件,/usr/bin 普通用户使用的应用程序,/usr/sbin 管理员使用的应用程序,/usr/lib 库文件Glibc(32位),/usr/lib64 库文件Glibc。
[root@localhost bin]# cd /usr/local/bin [root@localhost bin]# ls -l 总用量 13872 -rwxr-xr-x. 1 root root 4172051 3月 14 18:56 redis-benchmark -rwxr-xr-x. 1 root root 16459 3月 14 18:56 redis-check-aof -rwxr-xr-x. 1 root root 37691 3月 14 18:56 redis-check-dump -rwxr-xr-x. 1 root root 4261277 3月 14 18:56 redis-cli lrwxrwxrwx. 1 root root 12 3月 14 18:56 redis-sentinel -> redis-server -rwxr-xr-x. 1 root root 5702229 3月 14 18:56 redis-server
启动redis服务器(使用备用配置文件)
[root@localhost bin]# redis-server /myredis/redis.conf
查看进程
[root@localhost bin]# ps -ef | grep redis root 10618 1 0 21:14 ? 00:00:00 redis-server *:6379 root 10624 4912 0 21:16 pts/0 00:00:00 grep redis
启动redis客户端
[root@localhost bin]# redis-cli -p 6379 127.0.0.1:6379>
测试是否能连接服务器、
[root@localhost bin]# redis-cli -p 6379 127.0.0.1:6379> ping PONG
插入数据
127.0.0.1:6379> set k1 hello OK 127.0.0.1:6379> get k1 "hello"
关闭redis客户端
127.0.0.1:6379> exit [root@localhost bin]# ps -ef | grep redis root 10654 1 0 21:28 ? 00:00:00 redis-server *:6379 root 10668 4912 0 21:31 pts/0 00:00:00 grep redis
关闭redis服务器
127.0.0.1:6379> shutdown not connected> exit
linux的目录结构及说明
目录
说明
/
处于Linux系统树形结构的顶端,它是Linux文件系统的入口,所有的目录、文件、设备都在/之下
/bin
Bin是Binary的缩写。常用的二进制命令目录。比如ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级gun工具
/boot
存放系统启动相关的文件,例如:kernel.grub(引导装载程序)
/dev
dev是Device的缩写。设备文件目录,比如声卡、磁盘。在Linux中一切都被看做文件,包括终端设备、磁盘等等
设备文件:/dev/sda,/dev/sda1./dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero,/dev/null,/dev/cdrom
/etc
常用系统或二进制安装包配置文件默认路径和服务器启动命令目录
passwd 用户信息文件
shadow 用户密码文件
group 存储用户组信息
fstab 系统开机自动挂载分区列表
hosts 设定用户自己的IP与主机名对应信息
/home
普通用户默认的家目录
/lib
库文件存放目录,函数库目录
/lost+found
只在CentOS6中有
默认为空,被FSCK(file system check用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题, 可利用fsck命令对文件系统进行检查)用来放置零散文件(没有名称的文件)当系统非法关机后,这里就会存放一些文件。
在 centos6 版本下,每个分区的挂载点下会有些目录
/mnt
/media
一般用来临时挂载存储设备的挂载目录,比如cdrom、U盘等目录
/opt
表示的是可选择的意思,有些软件包也会被安装在这里
/proc
操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个文件来获取系统信息。也就是说,这个目录的内存不再硬盘上而是在内存里。
查看CPU信息
cat /proc/cpuinfo
/sys
系统目录,存放硬件信息的相关文件
/run
运行目录,存放的是系统运行时的数据,比如进程的PID文件
/srv
服务目录,存放的是我们本地服务的相关文件
/sbin
大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的。
/tmp
用于存放临时文件,又是用户运行程序的时候会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是类似的,不能存放重要数据,它的权限比较特殊。
[xf@xuexi ~]$ ls -ld /tmp
drwxrwxrwt. 27 root root 4096 12月 23 19:18 /tmp
t粘滞位(sticky bit)目录的sticky位表示这个目录里的文件只能被owner和root删除
/var
系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如 /var/log目录用来存放系统日志,还有/var/mail、/var/spool/cron
/usr
存放应用程序和文件
/usr/bin 普通用户使用的应用程序
/usr/sbin 管理员使用的应用程序
/usr/lib 库文件Glibc(32位)
/usr/lib64 库文件Glibc
/lib
/lib64
都在/usr/目录下
这个目录里存放着系统最基本的动态链接共享库,白喊许多倍/bin和/sbin中的程序使用的库文件,目录/usr/lib中含有更多用于用户程序的库文件。作用类似于windows里的dll文件,几乎所有的应用程序都需要用到这些共享库
注:lib***.a是静态库
Lib***.so是动态库
静态库在编译时被加载到二进制文件中
动态库在运行时加载到进程的内存空间中
简单的说:这些库视为了让你的程序能过正常编译运行的
redis基础知识
redis默认有16个数据库
# Set the number of databases. The default database is DB 0, you can select # a different one on a per-connection basis using SELECT <dbid> where # dbid is a number between 0 and 'databases'-1 #可以设置多个redis数据库,下标从0开始使用select 下标 来选择一个数据库 databases 16
更换第五个库