redis是一个Key-Value数据库,和关系型数据库一样,有增删改查。不过redis经常是作为存储系统来使用的,通常数据是存储在内存中的,所以速度特别快。很适合做当做缓存来用,总的来说redis的功能是就是存储数据,可以存在内存中,也可以永久的存在存硬盘中。并且操作速度很快。
redis的安装
这里是用的是centos系统,直接源码代码安装
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar -xzvf redis-4.0.8.tar.gz
cd redis-4.0.8
make
# 安装到指定的目录
make install PREFIX=/usr/local/redis
启动 redis
下载的redis-4.0.8.tar.gz 解压后有个配置文件 redis.conf, 可以复制到文件夹 /etc 下,并修改配置选型, 默认不是在后台运行的,修改成在后台运行。
daemonize no
修改为
daemonize yes
然后可以启动redis服务
cp redis.conf /etc
/usr/local/redis/redis-server /etc/redis.conf
22522:C 20 Feb 12:21:07.402 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
22522:C 20 Feb 12:21:07.402 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=22522, just started
22522:C 20 Feb 12:21:07.402 # Configuration loaded
关闭 redis
/usr/local/redis/redis-cli shutdown
redis 的命令执行
通过redis-cli 是执行redis的命令示例。
#以下这个两个命令是等价的,测试是否连接正常,可以看到redis可以在本机运行,也可以通过网络执行
redis-cli ping
redis-cli -h 127.0.0.1 -p 6379 ping
交互式的方式执行命令
#输入 redis-cli 直接回车,进入交互模式
redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> echo "hello redis"
"hello redis"
redis的常用命令
命令 | 含义 |
---|---|
set | 设置单个key |
get | 获取值 |
incr | +1 |
decr | -1 |
exists | 测试key是否存在 |
del | 删除key |
type | 测试key的类型 |
keys | 匹配满足的key |
dbszie | 当前数据库的key的数量 |
expire | 设置key的过期时间 |
ttl | key剩余的时间 |
move | 将key移动到指定的数据库 |
flushdb | 删除当前数据库中所有的key |
flushall | 删除所有的数据库的值key |
select | 切换数据库 |
redis示例
一个redis服务,可以是有多个数据库,不同的数据库可以存储相同的键。就像是不同的文件夹下,可以有相同的文件一样。默认redis一共有16个数据库,编号从0到15,默认使用的是第0个数据库。通过 select可以切换到不同的数据库。通过配置文件可以修改默认数据库的个数
# 清空所有的数据
127.0.0.1:6379> FLUSHALL
OK
# 获取一个不存的键,返回 nil
127.0.0.1:6379> get a
(nil)
# 使用0号数据库
127.0.0.1:6379> select 0
# 在0号数据库设置a的值100
127.0.0.1:6379> set a 100
OK
# 获取该值
127.0.0.1:6379> get a
"100"
# 切换到1号数据库
127.0.0.1:6379> select 1
OK
# 获取a的值,1号数据库中并没有a,返回 nil
127.0.0.1:6379[1]> get a
(nil)
# 保存当前的数据,默认保存的位置是当前目录,就是执行 redis-server 命令的时候,所在的目录, 文件的名字是 dump.rdb
127.0.0.1:6379> save
OK
# 关闭redis
redis-cli shutdown
# 重新启动,数据并不会丢失, 因为已经 **save** 保存过了。
redis-server /etc/redis.conf
php中使用 redis
首先需要在早php中安装好 redis扩展
pecl install redis
示例代码
<?php
redis = new Redis();redis->connect('127.0.0.1', 6379);
echo "redis ping: " . redis->ping() . "\n";redis->set('test', 100);
ans =redis->get('test');
echo $ans . "\n";
// -----------
/*
redis ping: +PONG
100
*/
常见文件
- 修改文件默认数据库保存的目录, 通过修改配置文件 redis.conf 选项 dir的值就可以, 修的值就是新的目录,要保证目录的存在。
- 数据的保存和恢复
CONFIG GET dir
可以获取数据库存储的目录,启动的时候自动恢复里面的值。 - 如果数据量大,如何在后台保存数据, 通过命令 bgsave。