redis的一些笔记

redis属于NoSQL,先说一下NoSQL的特性:
1、high performance 高并发读写
2、huge storage 海量数据的高效率存储和访问
3、high scalability && high availability 高扩展性和高可用性

NoSQL的分类:
1、键值(key-value)存储
2、列存储
3、文档数据库
4、图形数据库

redis的特点:
1、redis存储在内存中,高速但占用内存。
2、redis可用来做缓存、队列、数据存储等。
一般用于缓存、任务队列、网站访问统计、数据过期处理、应用排行榜、分布式集群架构中的session分离。

redis服务端安装配置:

wget http://download.redis.io/releases/redis-4.0.9.tar.gz
tar zxf redis-4.0.9.tar.gz
cd redis-4.0.9
make
make install
mkdir -p /etc/redis
cp redis.conf /etc/redis/
vim /etc/redis/redis.conf
daemonize yes
port 7200

客户端:

/usr/local/bin/redis-cli -p 7200

redis的数据类型,也可以说是redis的结构,包含五种:
字符串
列表
集合
散列
有序集合

1、字符串,String 存储的值可以是字符串、整数、浮点,统称为元素:

set string1 helloworld  #添加
set string2 6
get string2   #获取
incr string2  #自增1
get string2
decrby string2 2  #自减2
get string2

2、列表,List 存储的是一个序列集合且每个节点都包好了一个元素,列表中的元素可以重复,list用法如下:

lpush list1 2  #left推入
lpush list1 3
rpop list1     #right退出
lpush list1 4
lpush list1 4
llen list1     #查看长度

3、Set 集合,存储各不相同的元素,集合中的元素无序且不能重复:

sadd set1 2  #添加
scard set1   #一共多少个
sadd set1 3
scard set1
sismember set1 3  #检测有米有数字3
srem set1 3 #删除
scard set1

4、Hash 散列,存储key-value的散列组,如:

hset hash1 key1 12  #添加值为12的key1的hash1
hset hash1 key1 13
hget hash1 key1     #获取hash1的key1的值
hset hash1 key2 13    
hset hash1 key2 14  
hlen hash1          #获取长度
hmget hash1 key1 kye2  #列出hash1的key1和key2的值

5、Sort Set 有序分数集,也叫有序集合,存储分数和元素的映射。可以排序。
如果两个元素score一样,则按value的字典顺序排序:

zadd zset1 10.1 value1   #添加score为10.1的value1
zadd zset1 11.1 value2
zadd zset1 9.2 value3
zcard zset1     #查看数量
zrange zset1 0 2 withscores  #查看排序,排序是按scores来排,
zrank zset1 value1 

记录一下php的redis组件安装配置,以及通过php操作redis。以下:

php -m
yum install php-devel
which phpize
which php-config
wget https://github.com/phpredis/phpredis/archive/develop.zip
unzip develop.zip
cd phpredis-develop/
./configure -with-php-config=/usr/bin/php-config
make && make install
php --ini
vi /etc/php.ini
#末尾添加一行:extension=redis.so

参考文档:https://github.com/phpredis/phpredis

1、通过php操作string类型:

<?php

$redis = new \Redis();
$redis->connect("127.0.0.1", 7200);

$redis->delete("string1");
$redis->set("string1","value1");
$redis->set("string2","value22222");
$redis->set("string3",3);
$redis->incr("string3",2);
$value = $redis->get("string1");
var_dump($value);
var_dump($redis->get("string2"));
var_dump($redis->get("string3"));

2、操作list类型:

<?php

$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);

3、操作set类型:

<?php

$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);

$val = $redis->smembers("set1");
var_dump($val);

4、操作hash类型:

<?php

$redis = new \Redis();
$redis->connect("127.0.0.1", 7200);

$redis->delete("hash1");
$redis->hset("hash1","name","Tom");
$redis->hset("hash1","age","30");
$redis->hset("hash1","gender","1");
$val = $redis->hget("hash1","name");
var_dump($val);
$val2 = $redis->hmget("hash1",array("name","age"));
var_dump($val2);

5、操作Sort Set类型:

<?php

$redis = new \Redis();
$redis->connect("127.0.0.1", 7200);

$redis->delete("zset1");
$redis->zadd("zset1",100,"Tom");
$redis->zadd("zset1",90,"Kate");
$redis->zadd("zset1",85,"Jerry");
$val = $redis->zRange("zset1",0,-1);
var_dump($val);
$val2 = $redis->zrevrange("zset1",0,-1);
var_dump($val2);

代码简易,只是做的简单笔记。以备之后查询。看官轻喷。

猜你喜欢

转载自blog.csdn.net/fangfu123/article/details/82012477