a.在前面我简单的说过redis封装成共用类的实现,地址如下:高性能文件缓存key-value存储—Redis - Kencery - 博客园。
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
a.通过上面的说明之后我们既可以开始在linux系统下面安装redis了,在安装redis的过程中我遇到了一些问题,但也全部解决了,本来我想直接写然后遇到错误在引出来需要安装什么,但是感觉不太好写,所以我还是在前面将这些软件准备好,大家安装的时候可以先去安装redis去验证会不会出现问题,在解决也行。
b.下载redis的包,下载地址:http://download.redis.io/releases/redis-3.0.5.tar.gz
c.redis是C语言实现的,所以在Linux系统中需要安装gcc来进行编译,安装gcc请参考第三步。
a.通过上面几步之后,准备工作已经完成,即可以开始安装redis了。
tar -zxvf redis-2.8.19.tar.gz 解压到当前目录
这里写图片描述
解压后文件
进入解压目录
编译
[root@www redis-2.8.19]# make PREFIX=/usr/local/redis install
安装
进入安装目录/usr/local/redis/bin下有几个可执行文件
可执行文件
reids-check-aof —-检查修复aof文件 appendonly file 日志文件、数据持久化
[root@www redis]# bin/redis-server
./redis-server & 启动redis,加上&表示使redis以后台程序方式运行
启动
当redis启动完成之后,使用netstat -ntlp |grep 6379 查看端口是否在使用中,如果在使用中,则说明安装成功,否则安装没有成功。
连接redis并且测试,连接命令为:src/redis-cli,最后的测试结果如图所示:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
a.如上面所述,我们已经完成了对redis的安装,接下来就可以按照上面的方法使用,但是这里还存在一些小问题,那就是linux系统重启之后都需要找到安装路径才能执行启动命令,那么我们可以设置按照service的形式来启动redis吗?
b.执行命令:vim /etc/init.d/redis,创建脚本文件,在文件中写入如下代码,保存并且退出:
# description: Start and Stop redis
PATH=/usr/redis/redis-3.2.10/src:/sbin:/usr/local/redis/bin:/bin
EXEC=/usr/redis/redis-3.2.10/src/redis-server
REDIS_CLI=/usr/redis/redis-3.2.10/src/redis-cli
CONF="/usr/redis/redis-3.2.10/redis.conf"
echo "$PIDFILE exists, process is already running or crashed."
echo "Starting Redis server..."
echo "$PIDFILE exists, process is not running."
$REDIS_CLI -p $REDISPORT SHUTDOWN
echo "Waiting for Redis to shutdown..."
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
chmod a+x /etc/init.d/redis //a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人
d.以上工作顺利完成并且没有出现报错,则配置完成,每次我们开机之后都可以输入以下两个命令启动和关闭redis服务,如图所示:
service redis start #或者 /etc/init.d/redis start
service redis stop #或者 /etc/init.d/redis stop
f.当开启服务之后既可以连接redis测试进行操作或者使用其他客户端来操作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然后按照前面所写的测试是否随机器自动启动了。
你的redis在真是环境中不可以谁想访问就可以访问,所以必须要设置密码
#requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为
./redis-server /etc/redis.conf
输入命令 会提示(error) NOAUTH Authentication required. 这是属于正常现象。
redis 127.0.0.1:6379> config get requirepass
这是因为在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