一:什么事Redis
1.Redis是远程的
2.Redis是基于内存的
3.Redis是非关系型数据库
二:Redis的应用场景
1.缓存
2.队列
3.数据存储
三:Redis服务端安装
1.解压Redis源码
linux命令:1.tar -xf redis-2.8.13.tar.gz
ll
cd redis-2.8.13
2.make
3.sudo make install
四:Redis的五种数据类型
1.string类型
key value(string/int/float)
set操作字符串
输入: set string1 xiaofei
输入: get string1
返回: xiaofei
set操作整型
输入: set string2 4
输入: get string2
返回: 4
自增操作:
输入:incr string2
输入:get string2
返回:5
自减操作:
输入:decrby string2 2
返回:(integer) 3
输入:get string2
返回:3
2.list类型
最基本的是队列push pop操作 先进先出
lpush:从左边进 rpop:从右边出
rpush:从右边进 lpop:从左边出
基本操作:
1.输入:lpush list1 12
输入:lpush list1 13
输入:rpop list 1
返回:12
2.list操作不要求集合中的数据是唯一的
lpush list2 12
lpush list2 13
lpush list2 13
查看list集合中的长度:
llen list2
返回:3
3.set类型
1.向set集合中插入元素:sadd set1 12
查看set集合中的元素个数:scard set1
2.set要求集合中元素是唯一的
sadd set1 12
sadd set1 13
sadd set1 13
scard set1
返回:2
3.判断某个元素是否在set集合中
sismember set1 13
返回1,说明13在集合中
4.删除set集合中的某个元素
srem set1 13
4.hash类型(散列类型)
1.向hash中插入键值对
hset hash1 key1 12
2.返回hash中key对应的值
hget hash1 key1
返回:12
3.查看hash中的数据个数
hset hash1 key1 12
hset hash1 key2 13
hset hash1 key3 13
hlen hash1
返回:3
4.一次性获得hash中key1 key2的值
hmget hash1 key1 key2
5.sort set(有序分数集)
1.将一个分数为10.1 值为val1映射到zset
zadd zset1 10.1 val1
zadd zset1 11.1 val2
zadd zset1 9.1 val3
2.查看zset1中的元素个数
zcard zset1
3.按分数排名
zrange zset1 0 2 withscores
4.查看val2的排名
zrank zset1 val2
5.修改val3的分数
zadd zset1 12.2 val3
五.redis的链接操作
$redis=new Redis();
$redis->connect("127.0.0.1",7200);
1.string操作
$redis=new Redis();
$redis->connect("127.0.0.1",7200);
$redis->delete("string1");
$redis->set("string1","val1");
$val=$redis->get("string1");
var_dump($val); //val1
$redis->set("string2",4);
$redis->incr("string2",2);
$val=$redis->get("string2");
var_dump($val); //6
2.list操作
$redis=new Redis();
$redis->connect("127.0.0.1",7200);
$redis->delete('list1');
$redis->lpush("list1","A");
$redis->lpush("list1","B");
$redis->lpush("list1","C");
$val=$redis->rpop("list1");
var_dump($val); //A
3.set操作
$redis=new Redis();
$redis->connect("127.0.0.1",7200);
$redis->delete("set1");
$redis->sAdd("set1","A");
$redis->sAdd("set1","B");
$redis->sAdd("set1","C");
$redis->sAdd("set1","C");
$val=$redis->sCard("set1");
var_dump($val); //3
$val=$redis->sMember("set1");
var_dump($val);//以数组形式返回set1中的元素
4.hash操作
$redis=new Redis();
$redis->connect("127.0.0.1",7200);
$redis->delete("diver1");
$redis->hSet("diver1","name","ming");
$redis->hSet("diver1","age",20);
$redis->hSet("diver1","sex",1);
获取某个hash属性的值
$val=$redis->hGet("diver1","name");
var_dump($val); //ming
同时获取hash表中多个属性的值
$val=$redis->hMGet("diver1",array("name","age"));
var_dump($val);
5.sort set操作
$redis=new Redis();
$redis->connect("127.0.0.1",7200);
$redis->delete("zset1");
$redis->zAdd("zset1",100,"xiaoming");//rank:2
$redis->zAdd("zset1",90,"xiaohong");//rank:0
$redis->zAdd("zset1",93,"xiaowang");//rank:1
$val=$redis->zRange("zset1",0,-1);//zRange从低到高
var_dump($val);
$val=$redis->zRevRange("zset1",0,-1);//zRevRange从高到底
var_dump($val);