实战day06(一)----redis的回顾

一、课程计划

1、Redis服务器搭建

2、向业务逻辑中添加缓存。

3、使用redis做缓存

4、缓存同步。

5、Solr服务器安装

redis同类型产品memcache,缓存工具。

redis不仅可以缓存,还可以持久化数据,memcache只可以缓存。

二、Redis的安装

2.1 redis的安装

Redis是c语言开发的。

安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yuminstall gcc-c++

安装步骤:

第一步:redis的源码包上传到linux系统。

第二步:解压缩redis。

第三步:编译。进入redis源码目录。make

第四步:安装。makeinstall PREFIX=/usr/local/redis

PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下

2.2 连接redis

2.2.1 redis的启动

前端启动:在redis的安装目录下直接启动redis-server

[[email protected] bin]# ./redis-server

后台启动:

把/root/redis-3.0.0/redis.conf复制到/usr/local/redis/bin目录下

[[email protected] redis-3.0.0]# cp redis.conf/usr/local/redis/bin/

修改配置文件:

实战day06(一)----redis的回顾

[[email protected] bin]# ./redis-serverredis.conf

查看redis进程:

[[email protected] bin]# ps aux|grep redis

root     5190  0.1  0.3 33936  1712 ?        Ssl 18:23   0:00 ./redis-server*:6379   

root     5196  0.0  0.1  4356   728 pts/0    S+  18:24   0:00 grep redis

[[email protected]alhost bin]# 

2.2.2 Redis-cli

[[email protected] bin]# ./redis-cli

默认连接localhost运行在6379端口的redis服务。

可以通过ip来连接远程的redis服务:

[[email protected] bin]# ./redis-cli -h 192.168.25.153 -p 6379

-h:连接的服务器的地址

-p:服务的端口号

关闭redis:[[email protected] bin]# ./redis-cli shutdown=

redis和HashMap很像。HashMap存取速度很快,所以,redis能做缓存。HashMap为什么快,因为它的key是通过hash算出来存放位置,不用去遍历。redis快的另一个原因,是数据保存在内存中。

三、Redis五种数据类型

做缓存一般使用string和hash类型。这两种要熟练。

String:key-value(做缓存)

Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。

get、set、

incr:加一(生成id)

Decr:减一

Hash:key-fields-values(做缓存)

相当于一个key对于一个map,map中还有key-value

使用hash对key进行归类。

Hset:向hash中添加内容

Hget:从hash中取内容

hset hash1 field1 1

hset hash1 field2 2

hkeys hash1

hvals hash1

hgetall hash1

hdel hash1 field1

List:有顺序可重复

lpush list1 1 2 3 4 5 6

rpush list1 a b c d e

lrange list1 0 -1

lpop list1(取完就没了)

rpop list1

list适合做一些排队的相关处理。有若干事情要顺次处理,处理不过来,可以先放到队列里(list)。另外一个线程或进程不断的从这个list中取,一个个处理。

Set:元素无顺序,不能重复

sadd set1 a b a b c d

只会存下a b c d,可以用set去重。

srem set1 a

smembers set1

SortedSet(zset):有顺序,不能重复

既要排序,又要去重。对服务器的资源消耗高,运算的代价高。在实际的项目中,尽可能避免使用。

zadd zset1 1 a 3 b 2 c 5 d

zrange zset1 0 -1

zrem zset1 a

zrange zset1 0 -1

zrevrange zset1 0 -1

zrevrange zset1 0 -1 withscores

Key命令

设置key的过期时间。

expire key second:设置key的过期时间

ttl key:查看key的有效期

persist key:清除key的过期时间。Key持久化。

四、Redis的持久化方案

Redis的所有数据都是保存到内存中的。

Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis默认支持的持久化方案。

aof形式:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。

在redis.conf配置文件中配置。

Rdb:

实战day06(一)----redis的回顾

Aof的配置:

实战day06(一)----redis的回顾

两种持久化方案同时开启使用aof文件来恢复数据库。