1.redis简单说明
a.在前面我简单的说过redis封装成共用类的实现,
b.redis是一个key-value存储系统,它支持存储的value类型相比较Memcached更多,包括string,list,set,sets,hashes等(It supports data structures such as strings,hashes,lists,sets,sorted sets with range queries,bitmaps,hyperloglogs and geospatial indexes with radius queies)这些数据类型都支持push/pop,Add/remove等丰富的操作,而且这些操作都是原子性的。
c.redis和Memcached一样,为了保证效率,数据都是缓存在内存中的,区别就是redis会周期性的将更新的数据写入磁盘,并且可以实现主从(master-slave)同步。
d.redis在数据存储方面,采用了NoSql数据库的思想,即将Key作为数据检索的唯一标示,可以将其简单的理解为关系型数据库中索引的键,而value则作为数据存储的主要对象,其中每一个Value都有一个Key与之对应,在Redis中,Value将被视为二进制字节流用于存储任何格式的数据,如Json,XML,图片和序列化对象的字节流等,因此我们也可以将其想象为RDB中的Blob类型字段,从而在我们进行数据查询是,只能基于Key作为我们查询的条件。
e.redis官网:Redis
2.准备工作
a.通过上面的说明之后我们既可以开始在linux系统下面安装redis了,在安装redis的过程中我遇到了一些问题,但也全部解决了,本来我想直接写然后遇到错误在引出来需要安装什么,但是感觉不太好写,所以我还是在前面将这些软件准备好,大家安装的时候可以先去安装redis去验证会不会出现问题,在解决也行。
b.下载redis的包,下载地址:http://download.redis.io/releases/redis-3.0.5.tar.gz
c.redis是C语言实现的,所以在Linux系统中需要安装gcc来进行编译,安装gcc请参考第三步。
3.redis的安装
a.通过上面几步之后,准备工作已经完成,即可以开始安装redis了。
解压到当前目录
tar -zxvf redis-2.8.19.tar.gz 解压到当前目录
这里写图片描述
解压后文件
进入解压目录编译make,将.c编译成可执行.o文件
进入解压目录
编译
安装到指定目录
[root@www redis-2.8.19]# make PREFIX=/usr/local/redis install
1
安装
启动redis
进入安装目录/usr/local/redis/bin下有几个可执行文件
可执行文件
redis-benchmark —-性能测试工具
reids-check-aof —-检查修复aof文件 appendonly file 日志文件、数据持久化
redis-check-dump —-检查快照持久化文件
redis-cli —-命令行客户端
redis-server —-redis服务器启动命令
启动:
[root@www redis]# bin/redis-server
./redis-server & 启动redis,加上&表示使redis以后台程序方式运行
启动
端口号为:6379
启动测试
当redis启动完成之后,使用netstat -ntlp |grep 6379 查看端口是否在使用中,如果在使用中,则说明安装成功,否则安装没有成功。
连接redis并且测试,连接命令为:src/redis-cli,最后的测试结果如图所示:
【开放redis端口】
打开防火墙配置文件, 添加端口6379,才可供远程访问
4.Linux中设置redis的服务器启动和关闭
a.如上面所述,我们已经完成了对redis的安装,接下来就可以按照上面的方法使用,但是这里还存在一些小问题,那就是linux系统重启之后都需要找到安装路径才能执行启动命令,那么我们可以设置按照service的形式来启动redis吗?
b.执行命令:vim /etc/init.d/redis,创建脚本文件,在文件中写入如下代码,保存并且退出:
redis 脚本:
# Date 2015-12-10
# chkconfig: 2345 10 90
# description: Start and Stop redis
PATH=/usr/redis/redis-3.2.10/src:/sbin:/usr/local/redis/bin:/bin
REDISPORT=6379
EXEC=/usr/redis/redis-3.2.10/src/redis-server
REDIS_CLI=/usr/redis/redis-3.2.10/src/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/usr/redis/redis-3.2.10/redis.conf"
AUTH="1234"
case "$1" in
esac
c.给文件添加权限,使用脚本文件可以执行,命令为:
chmod 755 /etc/init.d/redis
chmod a+x /etc/init.d/redis //a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人
d.以上工作顺利完成并且没有出现报错,则配置完成,每次我们开机之后都可以输入以下两个命令启动和关闭redis服务,如图所示:
启动,停止redis
service redis start #或者 /etc/init.d/redis start
service redis stop #或者 /etc/init.d/redis stop
f.当开启服务之后既可以连接redis测试进行操作或者使用其他客户端来操作redis,测试如图所示:
5.Linux中设置redis的开机启动
a.在大部分情况下,我们需要服务器重新启动的时候自动开启redis,而不是我们手工的去开启,那么下来就说一下开机自动启动的设置。
b.首先设置redis.config中的daemonize为yes,确保守护进行开启,执行以下命令:
b.1 cd /usr/redis/redis-3.2.10
b.2 vim redis.conf 开启配置文件,找到daemonize属性酒设置为yes, 保存并且退出即可。
c.然后设置开机启动,命令:sudo chkconfig redis on
d.当以上步骤完成之后,即可以可以重新启动Linux然后按照前面所写的测试是否随机器自动启动了。
6.redis设置密码访问
你的redis在真是环境中不可以谁想访问就可以访问,所以必须要设置密码
设置密码的流程如下:
vim /etc/redis.conf
#requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为
requirepass 123456
然后保存,重启服务
cd /usr/local/bin
./redis-server /etc/redis.conf
测试连接:./redis-cli
输入命令 会提示(error) NOAUTH Authentication required. 这是属于正常现象。
我们输入 auth 123456#你刚才设置的密码
如:
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
远程访问不了:
这是因为在redis.conf中有个配置 bind 127.0.0.1 这个是默认只有本机访问,把这个注释掉就好了,注释以后查看redis进程就变为下面这样:
[root@localhost redis]# ps -ef | grep redis
root 5655 1 0 11:40 ? 00:00:23 ./redis-server *:6379
root 21184 18040 0 17:33 pts/1 00:00:00 grep --color=auto redis
这个*号就表示允许其它用户访问了。然后在用打开本机的 cmd使用 telnet ip 端口 就能ping通了。