【Linux基础服务教程】Redis安装和基本使用
【Linux基础服务教程】Redis安装和基本使用
一、数据库的类型
- 关系型数据库
RDBMS
MySQL
、Oracle
、PostgreSQL
- 适用场景:
- 业务数据的
持久化
存储 - 非关系型数据库
NoSQL(Not Only SQL)
memcached
、mongoDB
、redis
- 优势: 支持高并发、速度快
- 没有严格的数据约束规范(数据类型、主键等)
- 以
key-value
键值对的方式进行存储 - 基于内存进行存储
- 适用场景:
- 缓存服务器
- 存储业务
session
二、Redis
特性
- 开源的、跨平台的
- 以
key-value
存储数据 - 基于
内存
存储数据 - 支持
持久化
存储数据- 两种方式:
- rdb数据文件
*.rdb
aof
日志
- rdb数据文件
- 两种方式:
- 支持事务、主从复制、分片集群
- 支持多实例
- 配置简单
三、Redis安装部署
1.安装gcc
编译器
[root@master ~]# yum install -y gcc
2.下载Redis
[root@master ~]# wget https://download.redis.io/releases/redis-5.0.14.tar.gz
3.安装Redis
[root@master ~]# tar xf redis-5.0.14.tar.gz
[root@master ~]# cd redis-5.0.14/
[root@master redis-5.0.14]# make
[root@master redis-5.0.14]# make PREFIX=/usr/local/redis install #指定安装目录
4.准备Redis配置文件
[root@master redis-5.0.14]# mkdir /usr/local/redis/conf
[root@master redis-5.0.14]# cp redis.conf /usr/local/redis/conf
5.配置环境变量
[root@master ~]# vim /etc/profile
export PATH=$PATH:/usr/local/redis/bin
[root@master ~]# source /etc/profile #让环境变量生效
[root@master ~]# redis-server --version #测试
Redis server v=5.0.14 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=a8b13b484d1142e5
6.启动Redis
[root@master ~]# redis-server /usr/local/redis/conf/redis.conf #前台启动
后台启动
[root@master ~]# nohup redis-server /usr/local/redis/conf/redis.conf &
[1] 6899
[root@master ~]# nohup: 忽略输入并把输出追加到"nohup.out"
[root@master ~]# ps -aux | grep redis
root 6899 0.0 0.4 154000 8100 pts/1 Sl 20:14 0:00 redis-server 127.0.0.1:6379
7.加入开机启动项
[root@master ~]# vim /etc/rc.d/rc.local
export PATH=$PATH:/usr/local/redis/bin
redis-server /usr/local/redis/conf/redis.conf
[root@master ~]# chmod 777 /etc/rc.d/rc.local
[root@master ~]# reboot
[root@master ~]# ps -aux | grep redis #自行重启测试
root 889 0.0 0.4 154000 8092 ? Sl 20:24 0:00 redis-server 127.0.0.1:6379
8.关闭Redis
服务
[root@master ~]# redis-cli shutdown
四、数据库管理操作
1.登录数据库
[root@master ~]# redis-cli
127.0.0.1:6379>
2.数据读写
127.0.0.1:6379> set url 127.0.0.1 #set 键=值
OK
127.0.0.1:6379> set uid 1001 #写入数据
OK
127.0.0.1:6379> get url #get 键
"127.0.0.1"
127.0.0.1:6379> get uid #查询数据
"1001"
127.0.0.1:6379> mset uid1 1002 uid2 1003 url1 10.10.10.128 #插入多条数据
OK
127.0.0.1:6379> mget uid uid1 url1 #查询多条数据
1) "1001"
2) "1002"
3) "10.10.10.128"
3.数据删除
127.0.0.1:6379> del uid #删除数据
(integer) 1
127.0.0.1:6379> del uid1 uid2 url #删除多条数据
(integer) 3
4.切换数据库
redis
默认提供16
个数据库,编号从0-15
,默认使用0
每个
数据库,数据都是独立
的
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> select 4
OK
127.0.0.1:6379[3]> set uid 1001 #在3号库中写入数据
OK
127.0.0.1:6379[3]> select 0 #切换0号数据库
OK
127.0.0.1:6379> set uid 1001 #在0中写入同样的数据
OK
127.0.0.1:6379> get uid
"1001"
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> get uid
"1001"
5.数字管理操作
127.0.0.1:6379> set data 10
OK
127.0.0.1:6379> INCR data #自增长1
(integer) 11
127.0.0.1:6379> get data
"11"
127.0.0.1:6379> INCR data
(integer) 12
127.0.0.1:6379> get data
"12"
127.0.0.1:6379>
127.0.0.1:6379> DECR data #自减1
(integer) 11
127.0.0.1:6379> DECR data
(integer) 10
127.0.0.1:6379> get data
"10"
6.事务
127.0.0.1:6379[3]> multi #开始事务
OK
127.0.0.1:6379[3]> incr uid
QUEUED #不会直接显示结果
127.0.0.1:6379[3]> incr uid
QUEUED
127.0.0.1:6379[3]> get uid
QUEUED
127.0.0.1:6379[3]> exec #提交事务
1) (integer) 1002 #最后统一显示结果
2) (integer) 1003
3) "1003"
注意:如果在事务中存在
错误操作
,不会保存当前
事务!
127.0.0.1:6379[3]> multi
OK
127.0.0.1:6379[3]> incr uid
QUEUED
127.0.0.1:6379[3]> 123jdasjdja
(error) ERR unknown command `123jdasjdja`, with args beginning with:
127.0.0.1:6379[3]> get uid
QUEUED
127.0.0.1:6379[3]> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379[3]> get uid
"1003"
五、通过PHP
连接Redis
数据库
1.部署PHP
环境
[root@master ~]# yum install -y httpd php php-gd php-mysql php-devel
2.创建测试页面
[root@master ~]# vim /var/www/html/index.php
<?php
$redis = new Redis();
$redis -> connect("127.0.0.1",6379);
$redis -> set("name", "Tome");
$var = $redis -> get("name");
echo $var;
?>
3.启动httpd
服务并测试
[root@master ~]# systemctl start httpd
可以看到并
不能
正常访问,这是正常的,因为我们的php
默认是不能连接到redis
4.为PHP
添加连接Redis
模块
1.下载模块并解压
[root@master ~]# ls
redis-php-4.1.1.tgz
[root@master ~]# tar xf redis-php-4.1.1.tgz
[root@master ~]# cd redis-4.1.1/
[root@master redis-4.1.1]#
2.安装模块
[root@master redis-4.1.1]# /usr/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@master redis-4.1.1]# ./configure --enable-redis --with-php-config=/usr/bin/php-config
[root@master redis-4.1.1]# make && make install
Installing shared extensions: /usr/lib64/php/modules/ #安装目录输出信息
[root@master redis-4.1.1]# ls /usr/lib64/php/modules/
curl.so gd.so mysqli.so pdo_mysql.so pdo_sqlite.so redis.so zip.so
fileinfo.so json.so mysql.so pdo.so phar.so sqlite3.so #可以看到多了redis.so的模块
3.在PHP
中加载模块
[root@master ~]# vim /etc/php.ini
extension=/usr/lib64/php/modules/redis.so
4.重启httpd
服务并验证模块
[root@master ~]# systemctl restart httpd
[root@master ~]# php -m | grep -i redis #可以使用这个命令查看模块是否加载
redis
可以看到成功加载出来了!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WangShengJJのblog!