实战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/
修改配置文件:
[[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 1hset 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:
Aof的配置:
两种持久化方案同时开启使用aof文件来恢复数据库。