redis和phpredis的安装

数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQLPostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有MemcacheDBTokyo Cabinet等等。

Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和 键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序 (SORT)等高级功能,在实现INCRSETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。

详细描述参见官方手册,同时,官方提供了一个名为Retwis的项目的源代码,可以对照着官方介绍学习,注意其中关于Data Layout的描述,其他没什么。

项目实践中,多以关系数据库为主,不过合理的使用Redis这样的键值数据库,往往能扬长避短,比如说实现一个类似消息队列的功能,对MySQL来说,除非使用Q4M,否则很难满足高并发请求,不过对Redis来说,通过内建的Lists支持,消息队列就是小菜一碟。

redis安装

由于某些原因,我希望我的项目中使用redis,于是开始学习如何使用这个东西。首先要得到它,我是从它的官网上面下载的可以用wget直接下载,我一般是会把软件安装代码放在/dist/dist下面:

cd /dist/dist 

wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz

打开它:

tar zxf redis-2.2.7.tar.gz

cd redis-2.2.7

查看了一下安装文档,它的安装很简单,就make一下就可以了。

make

make test

如果不放心的话可以做一下测试make test

 接下来就是使用了,由于它是一个数据库,就像MYSQL,那它就应该有服务端和客户端,先打开服务端:

cd src

./redis-server > /dev/null &    

加上“>/dev/null &”的意思是让它在后台执行,不输出信息如果不是的话就会有每5秒输入一次的信息,像这样的:

[5265] 23 May 15:34:29 – DB 0: 4 keys (0 volatile) in 8 slots HT.

[5265] 23 May 15:34:29 – 0 clients connected (0 slaves), 790832 bytes in use

[5265] 23 May 15:34:34 – DB 0: 4 keys (0 volatile) in 8 slots HT.

[5265] 23 May 15:34:34 – 0 clients connected (0 slaves), 790832 bytes in use

[5265] 23 May 15:34:39 – DB 0: 4 keys (0 volatile) in 8 slots HT.

[5265] 23 May 15:34:39 – 0 clients connected (0 slaves), 790832 bytes in use

这样就把服务端打开了。

接下来我们用客户端去连接

./redis-cli

由于它是一个key-value的数据库,所以每条数据都是一个键名一个键值

 

   redis> set foo bar

    OK

    redis> get foo

    "bar"

    redis> incr mycounter

    (integer) 1

    redis> incr mycounter

    (integer) 2

    redis>quit

最后是退出,不需要加任何的符号,输入quit回车就退出了。我们来看一下redis使用的是哪一个端口:netstat -tnlp可以看到它使用的是

tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      5265/redis-server

6379这个端口,我们还可以用telnet来验证:

 

telnet localhost 6379

Trying 127.0.0.1…

Connected to localhost.localdomain (127.0.0.1).

Escape character is ‘^]’.

set foo 1

+OK

get foo

$1

1

quit

+OK

Connection closed by foreign host.

基本上到这里就完成了redis的安装了,接下来就是具体的应用了。

 

安装phpredis模块

https://github.com/owlient/phpredis

PHPredis下载地址:https://github.com/nicolasff/phpredis/tree/2.1.3

选择Download .zip

下载phpredis
解压

shell> cd phpredis
shell> /usr/local/php/bin/phpize
这个phpize是安装php模块的
shell> ./configure –with-php-config=/usr/local/php/bin/php-config
shell> make
shell> make install
接下来在php.ini中添加extension=redis.so 先要看看有没有extension_dir=/…….

如果找不到php.ini在哪,可以写一个PHP文件,内容为phpinfo();运行这个文件,找到Loaded Configuration File,这个就是php.ini所在的位置,它的名字不一定叫php.ini
重启apache或者nginx

php代码测试
$redis = new Redis();
$redis->connect(‘127.0.0.1’,6379);
$redis->set(‘test’,’hello world!’);
echo $redis->get(‘test’);
?>

输出hello world!

http://code.google.com/p/php-redis/

================

# redis目前提供四种数据类型:string,list,setzset(sorted set)
# * string
是最简单的类型,你可以理解成与Memcached一模一个的类型,一个key对应一个value,其上支持的操作与Memcached的操 作类似。但它的功能更丰富。
# * list
是一个链表结构,主要功能是pushpop、获取一个范围的所有值等等。操作中key理解为链表的名字。
# * set
是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
# * zset
set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的 值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。





原文地址:https://www.cnblogs.com/firmy/p/2300295.html