Redis的安装与使用
Redis安装
我已经打包上传了在这里
Redis下载
Redis官方下载地址进行安装
进入所下载的redis压缩包所在的文件
tar -zxvf redis-2.6.13.tar.gz
解压后进入
cd redis-2.6.13
然后
make
查看文件发现多了一个
src
文件夹,进入src文件中redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
创建一个用来存放redis工作目录,并复制redis运行文件
mkdir /usr/local/redis cp redis-cli redis-server /uer/local/redis
复制redis.conf到redis工作目录
cp redis.conf /usr/local/redis
进入redis工作目录开启redis
./redis-server
修改redis.conf
daemonize yes #即可后台启动redis ./redis-server redis.conf #查看服务是否开启 ps -A | grep redis #进入客户端 ./redis-cli
Redis使用
key的操作
命令 | 描述 |
---|---|
exists key | 测试指定key是否存在 |
del key1 key2 | 删除指定key |
type key | 返回给定key的value 类型 |
keys pattern | 查找所有符合给定模式( pattern)的 key |
randomkey | 当前数据库中随机返回一个 key 。 |
keyrename(oldname, newname) | 重命名key |
dbsize | 返回当前数据库中key的数目 |
expire | 设定一个key的活动时间(s) |
ttl | 获得一个key的活动时间 |
select(index) | 按索引查询 |
move(key, dbindex) | 移动当前数据库中的key到dbindex数据库 |
flushdb | 删除当前选择数据库中的所有key |
String 的操作
命令 | 描述 |
---|---|
set(key, value) | 给数据库中名称为key的string赋予值value |
get(key) | 返回数据库中名称为key的string的value |
getset(key, value) | 给名称为key的string赋予上一次的value |
mget(key1, key2,…, key N) | 返回库中多个string的value |
setnx(key, value) | 添加string,名称为key,值为value |
setex(key, time, value) | 向库中添加string,设定过期时间time |
mset(key N, value N) | 批量设置多个string的值 |
msetnx(key N, value N) | 如果所有名称为key i的string都不存在 |
incr(key) | 名称为key的string增1操作 |
incrby(key, integer) | 名称为key的string增加integer |
decr(key) | 名称为key的string减1操作 |
decrby(key, integer) | 名称为key的string减少integer |
append(key, value) | 名称为key的string的值附加value |
substr(key, start, end) | 返回名称为key的string的value的子串 |
对List操作的命令
命令 | 描述 |
---|---|
rpush(key, value) | 在名称为key的list尾添加一个值为value的元素 |
lpush(key, value) | 在名称为key的list头添加一个值为value的 元素 |
llen(key) | 返回名称为key的list的长度 |
lrange(key, start, end) | 返回名称为key的list中start至end之间的元素 |
ltrim(key, start, end) | 截取名称为key的list |
lindex(key, index) | 返回名称为key的list中index位置的元素 |
lset(key, index, value) | 给名称为key的list中index位置的元素赋值 |
lrem(key, count, value) | 删除count个key的list中值为value的元素 |
lpop(key) | 返回并删除名称为key的list中的首元素 |
rpop(key) | 返回并删除名称为key的list中的尾元素 |
blpop(key1, key2,… key N, timeout) | lpop命令的block版本。 |
brpop(key1, key2,… key N, timeout) | rpop的block版本。 |
rpoplpush(srckey, dstkey) | 返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部 |
对Set操作的命令
命令 | 描述 |
---|---|
sadd(key, member) | 向名称为key的set中添加元素member |
srem(key, member) | 删除名称为key的set中的元素member |
spop(key) | 随机返回并删除名称为key的set中一个元素 |
smove(srckey, dstkey, member) | 移到集合元素 |
scard(key) | 返回名称为key的set的基数 |
sismember(key, member) | member是否是名称为key的set的元素 |
sinter(key1, key2,…key N) | 求交集 |
sinterstore(dstkey, (keys)) | 求交集并将交集保存到dstkey的集合 |
sunion(key1, (keys)) | 求并集 |
sunionstore(dstkey, (keys)) | 求并集并将并集保存到dstkey的集合 |
sdiff(key1, (keys)) | 求差集 |
sdiffstore(dstkey, (keys)) | 求差集并将差集保存到dstkey的集合 |
smembers(key) | 返回名称为key的set的所有元素 |
srandmember(key) | 随机返回名称为key的set的一个元素 |
对Hash操作的命令
命令 | 描述 |
---|---|
hset(key, field, value) | 向名称为key的hash中添加元素field |
hget(key, field) | 返回名称为key的hash中field对应的value |
hmget(key, (fields)) | 返回名称为key的hash中field i对应的value |
hmset(key, (fields)) | 向名称为key的hash中添加元素field |
hincrby(key, field, integer) | 将名称为key的hash中field的value增加integer |
hexists(key, field) | 名称为key的hash中是否存在键为field的域 |
hdel(key, field) | 删除名称为key的hash中键为field的域 |
hlen(key) | 返回名称为key的hash中元素个数 |
hkeys(key) | 返回名称为key的hash中所有键 |
hvals(key) | 返回名称为key的hash中所有键对应的value |
hgetall(key) | 返回名称为key的hash中所有的键(field)及其对应的value |
Redis的主从模式
对于Redis的主从模式开启十分的简单
修改redis.conf
#slaveof <主机ip><主机端口>
slaveof 192.168.20.174 6379
重启服务器
root@Stark:~# ps -A | grep redis
2630 ? 00:00:09 redis-server
4775 pts/11 00:00:00 redis-cli
root@Stark:~# kill -9 2630
root@Stark:/usr/local/redis# ./redis-server redis.conf
#重启服务器的时候要带上配置文件
php与redis结合
进入php的安装目录找到可执行文件phpize
通过绝对路径的方式在phpredis的解压目录中运行
/usr/local/php/bin/phpize
如果提示缺少依赖autoconf安装即可进入解压目录
./configure && make && make install
再次执行之前一步的指令,没有错误提示代表执行成功
在phpredis解压目录中
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
在php.ini中开启redis扩展
extension=redis.so
重启apache或者nginx服务器即可。
测试:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('foo','This Is Test String! ');
echo $redis->get('foo');
?>