Redis是当前比较热门的NOSQL数据库之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了Memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集等操作。在此基础上,Redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
下面我们在CentOS上安装Redis
下载源码,解压缩后编译源码。Redis是c语言开发的。安装redis需要c语言的编译环境。
因为下载的是源码包,没有gcc的话编译会出错,怎么看有没有安装gcc呢?
[root@localhost software]# gccgcc: no input files
说明gcc已经安装好了,没的话安装gcc的命令为
[root@localhost software]# yum install gcc-c++
解压源码包:
[root@localhost software]# wget http://download.redis.io/releases/redis-3.2.8.tar.gz[root@localhost software]# tar zxf redis-3.2.8.tar.gz
[root@localhost software]# cd redis-3.2.8
[root@localhost redis-3.2.8]#make
Hint: It's a good idea to run 'make test' ;)出现这个就说明编译已经通过了。
[root@localhost redis-3.2.8]# lltotal 204-rw-rw-r--. 1 root root 85775 Feb 12 23:14 00-RELEASENOTES-rw-rw-r--. 1 root root 53 Feb 12 23:14 BUGS-rw-rw-r--. 1 root root 1805 Feb 12 23:14 CONTRIBUTING-rw-rw-r--. 1 root root 1487 Feb 12 23:14 COPYINGdrwxrwxr-x. 7 root root 4096 May 12 10:47 deps-rw-rw-r--. 1 root root 11 Feb 12 23:14 INSTALL-rw-rw-r--. 1 root root 151 Feb 12 23:14 Makefile-rw-rw-r--. 1 root root 4223 Feb 12 23:14 MANIFESTO-rw-rw-r--. 1 root root 6834 Feb 12 23:14 README.md-rw-rw-r--. 1 root root 46695 Feb 12 23:14 redis.conf-rwxrwxr-x. 1 root root 271 Feb 12 23:14 runtest-rwxrwxr-x. 1 root root 280 Feb 12 23:14 runtest-cluster-rwxrwxr-x. 1 root root 281 Feb 12 23:14 runtest-sentinel-rw-rw-r--. 1 root root 7606 Feb 12 23:14 sentinel.confdrwxrwxr-x. 2 root root 4096 May 12 10:48 srcdrwxrwxr-x. 10 root root 4096 Feb 12 23:14 testsdrwxrwxr-x. 7 root root 4096 Feb 12 23:14 utils
进入src目录下执行make install安装
[root@localhost src]# make install PREFIX=/usr/local/software/redis
安装目录是/usr/local/software/redis
进入安装目录看一下
[root@localhost redis]# pwd/usr/local/software/redis[root@localhost redis]# lsbin[root@localhost redis]# cd bin/[root@localhost bin]# lsredis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
redis-server:Redis服务器的daemon启动程序。
redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作。redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。在redis文件夹下创建文件夹etc放置redis的配置文件redis.conf。
redis.conf文件在redis-3.2.8目录下
[root@localhost redis-3.2.8]# cp redis.conf /usr/local/software/redis/etc/
redis.conf:redis的主配置文件,配置连接、密码、端口、是否持久化等的参数~
启动Redis服务。
1)执行如下命令
[root@localhost bin]# ./redis-server ../etc/redis.conf 6046:M 28 Mar 05:04:33.950 * Increased maximum number of open files to 10032 (it was originally set to 1024). _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 6046 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 6046:M 28 Mar 05:04:33.958 # WARNING: The TCP backlog setting of 511 cannot be enforced because..6046:M 28 Mar 05:04:33.958 # Server started, Redis version 3.2.86046:M 28 Mar 05:04:33.959 # WARNING overcommit_memory is set to 0! Background save may fail under..6046:M 28 Mar 05:04:33.962 # WARNING you have Transparent Huge Pages (THP) ..
2)查看进程
[root@localhost ~]# ps aux|grep redisroot 34597 0.0 0.7 137344 7640 pts/0 Sl+ 13:39 0:00 ./redis-server *:6379 root 34608 0.0 0.0 103308 860 pts/1 S+ 13:41 0:00 grep redis
这个时候redis是占用一个窗口的,可以让redis后台运行,这时需要修改redis的配置文件:
daemonize yes
3)然后用客户端测试一下是否启动成功。
默认连接localhost运行在6379端口的redis服务
[root@localhost src]# ./redis-cli 127.0.0.1:6379> set greet 'hello'OK127.0.0.1:6379> get greet"hello"127.0.0.1:6379>
上面命令中,greet是key,'hello'是value,想退出redis客户端,可以使用quit命令
127.0.0.1:6379> quit[root@localhost bin]#
修改Redis的配置文件redis.conf中daemonize的值为yes,可是使Redis服务在后台运行
那么怎么连接远程服务器呢?
-h:连接的服务器的地址
-p:服务的端口号
[root@localhost bin]# ./redis-cli -h 192.168.0.129 -p 6379
此时如果想把redis服务器停掉,可以使用命令
127.0.0.1:6379> shutdown
not connected> quit[root@localhost bin]#或者:
[root@localhost bin]# ./redis-cli shutdown