PHP中redis 的安装和使用

来源:互联网 发布:java语言开发游戏 编辑:程序博客网 时间:2024/06/09 18:14

一、套用别人的话:

redis 很牛叉,能将不同类型的数据存到内存,存到内存取出的时候就快了。所以,他很受欢迎。还有一个很牛叉的叫memcache ,但是他存的数据类型很有限,只能存入string 类型。所以,用redis 取代memcache 的越来越多了。


二、windows 版本的安装

比较一般的开发调试在windows上,所以这个版本还是要装滴~。

1.下载

地址:https://github.com/dmajkic/redis/downloads 。或者网盘(http://l3.yunpan.cn/lk/sVEUY9ygDJIdD)(redis-2.4.5-win32-win64.zip )

根据自己系统的情况选择版本安装,我选的是最新版,64位。

下载完成后,解压,有2个文件夹,一个32,一个64.,我的系统是64位windows ,所以我解压64位的。


2.安装

redis 的安装和memcache 很像,比他还要简单。

将下载的64文件夹里的子文件。复制到D:\redis 下。就可以了。就这么简单。


3. 运行

打开cmd。进入D:\redis

执行命令:redis-server.exe redis.conf

[plain] view plaincopyprint?
  1. C:\Users\yi.yang>d:  
  2.   
  3. D:\>cd redis  
  4.   
  5. D:\redis>redis-server.exe redis.conf  
  6. [5556] 26 Nov 14:47:55 * Server started, Redis version 2.4.5  
  7. [5556] 26 Nov 14:47:55 # Open data file dump.rdb: No such file or directory  
  8. [5556] 26 Nov 14:47:55 * The server is now ready to accept connections on port 6379  
  9. [5556] 26 Nov 14:47:56 - 0 clients connected (0 slaves), 1179896 bytes in use  
  10. [5556] 26 Nov 14:48:01 - 0 clients connected (0 slaves), 1179896 bytes in use  
C:\Users\yi.yang>d:D:\>cd redisD:\redis>redis-server.exe redis.conf[5556] 26 Nov 14:47:55 * Server started, Redis version 2.4.5[5556] 26 Nov 14:47:55 # Open data file dump.rdb: No such file or directory[5556] 26 Nov 14:47:55 * The server is now ready to accept connections on port 6379[5556] 26 Nov 14:47:56 - 0 clients connected (0 slaves), 1179896 bytes in use[5556] 26 Nov 14:48:01 - 0 clients connected (0 slaves), 1179896 bytes in use

再开另一个cmd窗口。进入D:\redis

执行命令:redis-cli.exe -h 127.0.0.1 -p 6379

[plain] view plaincopyprint?
  1. C:\Users\yi.yang>d:  
  2.   
  3. D:\>cd redis  
  4.   
  5. D:\redis>redis-cli.exe -h 127.0.0.1 -p 6379  
  6. redis 127.0.0.1:6379> set yangyi 100  
  7. OK  
  8. redis 127.0.0.1:6379> get yangyi  
  9. "100"  
  10. redis 127.0.0.1:6379>  
C:\Users\yi.yang>d:D:\>cd redisD:\redis>redis-cli.exe -h 127.0.0.1 -p 6379redis 127.0.0.1:6379> set yangyi 100OKredis 127.0.0.1:6379> get yangyi"100"redis 127.0.0.1:6379>

执行简单的set 和get命令,有数据,说明安装成功。


三、redis 的基本使用

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。

1 .  string简单存取操作

set 设置元素的值;

get 取出元素的值;

incr 元素自增1;

incrby 元素自增n


[plain] view plaincopyprint?
  1. D:\redis>redis-cli.exe -h 127.0.0.1 -p 6379  
  2. redis 127.0.0.1:6379> set yangyi 100  
  3. OK  
  4. redis 127.0.0.1:6379> get yangyi  
  5. "100"  
  6. redis 127.0.0.1:6379> set name yangyi  
  7. OK  
  8. redis 127.0.0.1:6379> get name  
  9. "yangyi"  
  10. redis 127.0.0.1:6379> incr name  
  11. (error) ERR value is not an integer or out of range  
  12. redis 127.0.0.1:6379> set sum 12  
  13. OK  
  14. redis 127.0.0.1:6379> ince sum  
  15. (error) ERR unknown command 'ince'  
  16. redis 127.0.0.1:6379> incr sum  
  17. (integer) 13  
  18. redis 127.0.0.1:6379> get sum  
  19. "13"  
  20. redis 127.0.0.1:6379> incrby sum 5  
  21. (integer) 18  
  22. redis 127.0.0.1:6379> set blog:url "http://yangyi.com"  
  23. OK  
  24. redis 127.0.0.1:6379> get blog  
  25. (nil)  
  26. redis 127.0.0.1:6379> get blog:url  
  27. "http://yangyi.com"  
  28. redis 127.0.0.1:6379>  
D:\redis>redis-cli.exe -h 127.0.0.1 -p 6379redis 127.0.0.1:6379> set yangyi 100OKredis 127.0.0.1:6379> get yangyi"100"redis 127.0.0.1:6379> set name yangyiOKredis 127.0.0.1:6379> get name"yangyi"redis 127.0.0.1:6379> incr name(error) ERR value is not an integer or out of rangeredis 127.0.0.1:6379> set sum 12OKredis 127.0.0.1:6379> ince sum(error) ERR unknown command 'ince'redis 127.0.0.1:6379> incr sum(integer) 13redis 127.0.0.1:6379> get sum"13"redis 127.0.0.1:6379> incrby sum 5(integer) 18redis 127.0.0.1:6379> set blog:url "http://yangyi.com"OKredis 127.0.0.1:6379> get blog(nil)redis 127.0.0.1:6379> get blog:url"http://yangyi.com"redis 127.0.0.1:6379>


2 . list列表操作

rpush尾部加入元素;

lpush头部加入元素;

llen列表元素个数;

rpop弹出尾部元素;

lpop弹出头部元素;

lrange user 0 -1 获取所有元素;

lrange users 1 2获取第1到第2个元素


[plain] view plaincopyprint?
  1. redis 127.0.0.1:6379> rpush users "yangyi"  
  2. (integer) 1  
  3. redis 127.0.0.1:6379> rpush users "zhangsan"  
  4. (integer) 2  
  5. redis 127.0.0.1:6379> lpush users "lisi"  
  6. (integer) 3  
  7. redis 127.0.0.1:6379> lrange users 0 -1  
  8. 1) "lisi"  
  9. 2) "yangyi"  
  10. 3) "zhangsan"  
  11. redis 127.0.0.1:6379> llen users  
  12. (integer) 3  
  13. redis 127.0.0.1:6379> rpop users  
  14. "zhangsan"  
  15. redis 127.0.0.1:6379> llen users  
  16. (integer) 2  
  17. redis 127.0.0.1:6379> lpop users  
  18. "lisi"  
  19. redis 127.0.0.1:6379> llen users  
  20. (integer) 1  
  21. redis 127.0.0.1:6379> lrange users 0 1  
  22. 1) "yangyi"  
  23. redis 127.0.0.1:6379>  
redis 127.0.0.1:6379> rpush users "yangyi"(integer) 1redis 127.0.0.1:6379> rpush users "zhangsan"(integer) 2redis 127.0.0.1:6379> lpush users "lisi"(integer) 3redis 127.0.0.1:6379> lrange users 0 -11) "lisi"2) "yangyi"3) "zhangsan"redis 127.0.0.1:6379> llen users(integer) 3redis 127.0.0.1:6379> rpop users"zhangsan"redis 127.0.0.1:6379> llen users(integer) 2redis 127.0.0.1:6379> lpop users"lisi"redis 127.0.0.1:6379> llen users(integer) 1redis 127.0.0.1:6379> lrange users 0 11) "yangyi"redis 127.0.0.1:6379>

3 .  set集合操作

sadd添加元素到集合;

smembers查看集合全部元素;

srem删除指定元素;

sismember查看元素是否存在,1表示存在,0表示不存在;

sunion合并两个set集合

[plain] view plaincopyprint?
  1. redis 127.0.0.1:6379> sadd lan 'php'  
  2. (integer) 1  
  3. redis 127.0.0.1:6379> sadd code 'php'  
  4. (integer) 1  
  5. redis 127.0.0.1:6379> sadd code 'java'  
  6. (integer) 1  
  7. redis 127.0.0.1:6379> sadd code 'c++'  
  8. (integer) 1  
  9. redis 127.0.0.1:6379> smembers code  
  10. 1) "php"  
  11. 2) "c++"  
  12. 3) "java"  
  13. redis 127.0.0.1:6379> srem code 'c++'  
  14. (integer) 1  
  15. redis 127.0.0.1:6379> sismember code 'php'  
  16. (integer) 1  
  17. redis 127.0.0.1:6379> sadd book 'php'  
  18. (integer) 1  
  19. redis 127.0.0.1:6379> sadd book 'asp'  
  20. (integer) 1  
  21. redis 127.0.0.1:6379> sunion code book  
  22. 1) "asp"  
  23. 2) "php"  
  24. 3) "java"  
  25. redis 127.0.0.1:6379>  
redis 127.0.0.1:6379> sadd lan 'php'(integer) 1redis 127.0.0.1:6379> sadd code 'php'(integer) 1redis 127.0.0.1:6379> sadd code 'java'(integer) 1redis 127.0.0.1:6379> sadd code 'c++'(integer) 1redis 127.0.0.1:6379> smembers code1) "php"2) "c++"3) "java"redis 127.0.0.1:6379> srem code 'c++'(integer) 1redis 127.0.0.1:6379> sismember code 'php'(integer) 1redis 127.0.0.1:6379> sadd book 'php'(integer) 1redis 127.0.0.1:6379> sadd book 'asp'(integer) 1redis 127.0.0.1:6379> sunion code book1) "asp"2) "php"3) "java"redis 127.0.0.1:6379>

4 . zset 有序集合(Sorted Set)操作

zadd students 1983 “yangyi” 添加一个元素yangyi到集合students里面,并设置其生日年份为1989,用做该记录的score,以便根据score进行排序;

zrange students 0 -1 查看全部

zrange students 1 2 查看第1到第2个元素

[plain] view plaincopyprint?
  1. redis 127.0.0.1:6379> zadd students 1989 'yangyi'  
  2. (integer) 1  
  3. redis 127.0.0.1:6379> zadd students 1990 'yuanyuan'  
  4. (integer) 1  
  5. redis 127.0.0.1:6379> zrange students 0 -1  
  6. 1) "yangyi"  
  7. 2) "yuanyuan"  
  8. redis 127.0.0.1:6379> zrange students 1 2  
  9. 1) "yuanyuan"  
  10. redis 127.0.0.1:6379>  
redis 127.0.0.1:6379> zadd students 1989 'yangyi'(integer) 1redis 127.0.0.1:6379> zadd students 1990 'yuanyuan'(integer) 1redis 127.0.0.1:6379> zrange students 0 -11) "yangyi"2) "yuanyuan"redis 127.0.0.1:6379> zrange students 1 21) "yuanyuan"redis 127.0.0.1:6379>

四、linux 上redis 的安装。

其实在linux上安装,更为简单。


1. 打开redis 官网 http://redis.io/download 下载页面。有下载的版本,有下载安装步骤,很清楚。

    (1)下载,会有下载进度条提示,下载完成在/home/yangyi/目录下。

[plain] view plaincopyprint?
  1. yangyi@yangyi:/$ cd /home/yangyi/  
  2. yangyi@yangyi:~$ sudo wget http://redis.googlecode.com/files/redis-2.6.5.tar.gz  
yangyi@yangyi:/$ cd /home/yangyi/yangyi@yangyi:~$ sudo wget http://redis.googlecode.com/files/redis-2.6.5.tar.gz
 

    (2)解压并安装,tar xzf 解压 ,进入解压后的目录,make 。安装即可

[plain] view plaincopyprint?
  1. yangyi@yangyi:~$ tar xzf redis-2.6.5.tar.gz   
  2. yangyi@yangyi:~$ cd redis-2.6.5/  
  3. yangyi@yangyi:~/redis-2.6.5$ make   
yangyi@yangyi:~$ tar xzf redis-2.6.5.tar.gz yangyi@yangyi:~$ cd redis-2.6.5/yangyi@yangyi:~/redis-2.6.5$ make 


官网上没有提示说要make install 。最好make install 一下。因为这样一下。系统会将redis的几个核心文件,复制到 /usr/local/bin/ 目录下。这样。以后就可以在任何地方启动并使用redis 了,而不必非要进入redis的安装目录,才能启动它。

[plain] view plaincopyprint?
  1. yangyi@yangyi:~/redis-2.6.5$ make install  
yangyi@yangyi:~/redis-2.6.5$ make install


(3)运行,执行redis-server 命令即可。这个启动是后台运行的。不像windows cmd 很蛋疼,必须要开着,不能关。

[plain] view plaincopyprint?
  1. yangyi@yangyi:~/redis-2.6.5$ redis-server  
yangyi@yangyi:~/redis-2.6.5$ redis-server

 (4)使用,看所否已经运行。这个时候因为redis 已经启动,所以可以在任何地方,任何目录使用redis 了。执行 :redis-cli 就可以使用redis 了。

[plain] view plaincopyprint?
  1. yangyi@yangyi:/$ redis-cli  
  2. redis> get foo  
  3. "bar"  
  4. redis> exit  
  5. yangyi@yangyi:/$ cd /  
  6. yangyi@yangyi:/$ redis-cli  
  7. redis> set foo bar  
  8. OK  
  9. redis> get foo  
  10. "bar"  
  11. redis>   
yangyi@yangyi:/$ redis-cliredis> get foo"bar"redis> exityangyi@yangyi:/$ cd /yangyi@yangyi:/$ redis-cliredis> set foo barOKredis> get foo"bar"redis> 
表明。redis 已经安装成功,并且可以使用了。(*^__^*) 


  (4)让redis 开机自启动。windows 的开机自启动很蛋疼,linux上就很easy 了。

[plain] view plaincopyprint?
  1. sudo gedit /etc/rc.local  
 sudo gedit /etc/rc.local

添加 

[plain] view plaincopyprint?
  1. /usr/local/bin/redis-server  
/usr/local/bin/redis-server



2. 还一种方法更简单。推荐。

直接:

[plain] view plaincopyprint?
  1. yangyi@yangyi:/usr/local/bin$ sudo apt-get install redis-server  
yangyi@yangyi:/usr/local/bin$ sudo apt-get install redis-server
 就搞定了。而且配置文件神马的都自动搞好了,开机启动什么的都好了。

启动/关闭

[plain] view plaincopyprint?
  1. yangyi@yangyi:/usr/local/bin$ sudo /etc/init.d/redis-server stop  
yangyi@yangyi:/usr/local/bin$ sudo /etc/init.d/redis-server stop
[plain] view plaincopyprint?
  1. yangyi@yangyi:/usr/local/bin$ sudo /etc/init.d/redis-server start  
原创粉丝点击