Redis是Remote Dictionary Server(远程数据服务)的缩写
由意大利人 antirez(Salvatore Sanfilippo) 开发的一款 内存高速缓存数据库
该软件使用C语言编写,它的数据模型为 key-value
它支持丰富的数据结构(类型),比如 String(字符串)、list(链表) 、 hash(哈希) 、 set(集合) 、 sortedset(有序集合)。
可持久化(将内存中数据写入硬盘,也可从硬盘写入内存),保证了数据安全。
缓存:
有两种类型 :数据缓存、页面缓存(smarty)
使用缓存减轻数据库的负载。
在开发网站的时候如果有一些数据在短时间之内不会发生变化,而它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,
就把这些数据放到一个读取速度更快的介质上(或者是通过较少的计算量就可以获得该数据) ,该行为就称作对该数据的缓存。
该介质可以是文件、数据库、内存,内存经常用于数据缓存。
缓存的两种形式:
页面缓存经常用在CMS(content manage system)内存管理系统里边
新闻页面(内容主体单一、集中)适合做页面缓存
数据缓存经常会用在页面的具体数据里边
商品页面的组成部分有本身的的业务特点,各个部分数据比较独立,适合给他们分别做“数据缓存”
①Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
②Redis支持master-slave(主—从)模式应用。
③Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
④Redis单个value的最大限制是1GB, memcached只能保存1MB的数据
把redis软件上传到/hotdata/soft目录里边:
1)解压Redis压缩包
[root@fengniu020 soft]# tar zxvf redis-2.6.14.tar.gz
2)进入解压后的文件夹,直接执行编译安装make
[root@fengniu020 soft]# cd redis-2.6.14 [root@fengniu020 redis-2.6.14]# ls 00-RELEASENOTES CONTRIBUTING deps Makefile README runtest src utils BUGS COPYING INSTALL MANIFESTO redis.conf sentinel.conf tests [root@fengniu020 redis-2.6.14]# vim README [root@fengniu020 redis-2.6.14]# make
3) 可执行make test, 若提示未安装tcl,则安装(可跳过)
[root@fengniu020 src]# make test You need tcl 8.5 or newer in order to run the Redis test make: *** [test] Error 1 [root@fengniu020 src]# yum install tcl
在src目录下的相关文件解释:
4)创建/usr/local/redis运行目录,并给其copy两个执行文件:
[root@fengniu020 src]# mkdir /usr/local/redis
[root@fengniu020 src]# cp redis-cli redis-server /usr/local/redis/
给redis运行目录再copy一个配置文件
(配置文件在redis的解压文件目录里边)
[root@fengniu020 src]# cd .. [root@fengniu020 redis-2.6.14]# ls 00-RELEASENOTES CONTRIBUTING deps Makefile README runtest src utils BUGS COPYING INSTALL MANIFESTO redis.conf sentinel.conf tests [root@fengniu020 redis-2.6.14]# cp redis.conf /usr/local/redis/5) 前台启动 redis服务(关闭窗口,则Redis停止)
6)设置后台启动redis
修改redis.conf配置文件
# 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. # 将no改为yes,设置为后台启动Redis daemonize yes
携带redis.conf配置文件,在后台启动redis服务:
[root@fengniu020 redis]# pwd /usr/local/redis [root@fengniu020 redis]# ./redis-server redis.conf [root@fengniu020 redis]#查看是否成功启动Redis
[root@fengniu020 redis]# ps -A | grep redis 5283 ? 00:00:00 redis-server
redis的简单操作(设置和读取变量):
[root@fengniu020 redis]# ./redis-cli redis 127.0.0.1:6379> set name tom OK redis 127.0.0.1:6379> set age 11 OK redis 127.0.0.1:6379> set addr beijing OK redis 127.0.0.1:6379> get name "tom" redis 127.0.0.1:6379> get age "11" redis 127.0.0.1:6379> get addr "beijing" redis 127.0.0.1:6379>