一、Redis的特点
1、redis的特点:
1.丰富的数据结构 -----String,list,set,hash等数据结构的存储
2.支持持久化
3.支持事务 ---------------事务是指“一个完整的动作,要么全部执行,要么什么也没有做”。
4.支持主从
2、与memcache的区别
1).Redis不仅仅支持简单的k/v类型的数据,同时还提供了list,set,zset,hash等数据结构的存储
2).Redis支持master-slave(主-从)模式应用
3).Redis支持数据的持久化
2、Redis的单机部署
[root@redis-master ~]# mkdir -p /data/application ---创建工作目录
[root@redis-master ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz ---下载redis
[root@redis-master ~]# tar xzf redis-4.0.9.tar.gz -C /data/application/ ---解压
[root@redis-master ~]# cd /data/application/
[root@redis-master application]# mv redis-4.0.9/ redis
[root@redis-master application]# cd redis/
[root@redis-master redis]# yum install -y gcc make #安装编译工具
[root@redis-master redis]# make
注:如果报错请将刚才解压的安装包删除掉,再次重新解压并进行make安装即可。
[root@redis-master redis]# mv redis.conf redis.conf.bak
[root@redis-master redis]# vim redis.conf ---修改如下
bind 0.0.0.0 #允许所有网路访问
daemonize yes #开启后台模式将on改为yes
port 6379 #端口号
dir /data/application/redis/data #本地数据库存放持久化数据的目录该目录-----需要存在
创建存放数据的目录
[root@redis-master redis]# mkdir /data/application/redis/data
配置redis为systemctl启动
[root@redis-master redis]# src/redis-server redis.conf &
或者可以调成systemctl 启动(不建议)
[root@redis-master redis]# cd /lib/systemd/system
[root@redis-master system]# vim redis.service
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown
[Install]
WantedBy=multi-user.target
======================================================================================
参数详解:
• [Unit] 表示这是基础信息
• Description 是描述
• After 是在那个服务后面启动,一般是网络服务启动后启动
• [Service] 表示这里是服务信息
• ExecStart 是启动服务的命令
• ExecStop 是停止服务的指令
• [Install] 表示这是是安装相关信息
• WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
=========================================================================================
8.启动服务:
[root@redis-master system]# systemctl daemon-reload #重新加载
[root@redis-master system]# systemctl start redis.service
登陆redis
[root@redis-master system]# cd /data/application/redis/src/
[root@redis-master src]# ./redis-cli -h 192.168.246.202 -p 6379
192.168.246.202:6379> ping ---测试redis是否可以用
PONG
192.168.246.202:6379> set name xiaoming #设置key--name,并设置值
OK
192.168.246.202:6379> get name #获取到key
"xiaoming"
192.168.246.202:6379>
单机版redsi已经部署完成。将ip和端口发给开发就可以了。
192.168.246.202:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value。
PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value。
NX : 只在键不存在时, 才对键进行设置操作。
XX : 只在键已经存在时, 才对键进行设置操作。
使用 EX 选项:
[root@localhost src]# ./redis-cli -h 192.168.62.231 -p 6379
192.168.62.231:6379> set name1 xiaohong EX 10
OK
192.168.62.231:6379> get name1
"xiaohong"
等待10s,再次查看
192.168.62.231:6379> get name1
(nil)
使用 PX 选项:
192.168.62.231:6379> set name2 xiaohong PX 3233
OK
192.168.62.231:6379> get name2
"xiaohong"
等待3s,再次查看
192.168.62.231:6379> get name2
(nil)
使用 NX 选项:
192.168.62.231:6379> set class 1901 NX
OK # 键不存在,设置成功
192.168.62.231:6379> get class
"1901"
192.168.62.231:6379> set class 1901 NX
(nil) # 键已经存在,设置失败
192.168.62.231:6379> get class
"1901" # 维持原值不变
使用 XX 选项:
192.168.62.231:6379> set home taikang XX
(nil) # 因为键不存在,设置失败
192.168.62.231:6379> set home taikang
OK # 先给键设置一个值
192.168.62.231:6379> set home zhengzhou XX
OK # 设置新值成功
192.168.62.231:6379> get home
"zhengzhou"
删除:
192.168.62.231:6379> del class
(integer) 1
192.168.62.231:6379> get class
(nil)