欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP中redis 的安装和使用(1)

程序员文章站 2024-01-30 19:30:34
...

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

一、套用别人的话:

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

C:\Users\yi.yang>d:

D:\>cd redis

D:\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

C:\Users\yi.yang>d:

D:\>cd redis

D:\redis>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> set yangyi 100
OK
redis 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


D:\redis>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> set yangyi 100
OK
redis 127.0.0.1:6379> get yangyi
"100"
redis 127.0.0.1:6379> set name yangyi
OK
redis 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 range
redis 127.0.0.1:6379> set sum 12
OK
redis 127.0.0.1:6379> ince sum
(error) ERR unknown command 'ince'
redis 127.0.0.1:6379> incr sum
(integer) 13
redis 127.0.0.1:6379> get sum
"13"
redis 127.0.0.1:6379> incrby sum 5
(integer) 18
redis 127.0.0.1:6379> set blog:url "http://yangyi.com"
OK
redis 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个元素


redis 127.0.0.1:6379> rpush users "yangyi"
(integer) 1
redis 127.0.0.1:6379> rpush users "zhangsan"
(integer) 2
redis 127.0.0.1:6379> lpush users "lisi"
(integer) 3
redis 127.0.0.1:6379> lrange users 0 -1
1) "lisi"
2) "yangyi"
3) "zhangsan"
redis 127.0.0.1:6379> llen users
(integer) 3
redis 127.0.0.1:6379> rpop users
"zhangsan"
redis 127.0.0.1:6379> llen users
(integer) 2
redis 127.0.0.1:6379> lpop users
"lisi"
redis 127.0.0.1:6379> llen users
(integer) 1
redis 127.0.0.1:6379> lrange users 0 1
1) "yangyi"
redis 127.0.0.1:6379>

3 . set集合操作

sadd添加元素到集合;

smembers查看集合全部元素;

srem删除指定元素;

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

sunion合并两个set集合

redis 127.0.0.1:6379> sadd lan 'php'
(integer) 1
redis 127.0.0.1:6379> sadd code 'php'
(integer) 1
redis 127.0.0.1:6379> sadd code 'java'
(integer) 1
redis 127.0.0.1:6379> sadd code 'c++'
(integer) 1
redis 127.0.0.1:6379> smembers code
1) "php"
2) "c++"
3) "java"
redis 127.0.0.1:6379> srem code 'c++'
(integer) 1
redis 127.0.0.1:6379> sismember code 'php'
(integer) 1
redis 127.0.0.1:6379> sadd book 'php'
(integer) 1
redis 127.0.0.1:6379> sadd book 'asp'
(integer) 1
redis 127.0.0.1:6379> sunion code book
1) "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个元素

redis 127.0.0.1:6379> zadd students 1989 'yangyi'
(integer) 1
redis 127.0.0.1:6379> zadd students 1990 'yuanyuan'
(integer) 1
redis 127.0.0.1:6379> zrange students 0 -1
1) "yangyi"
2) "yuanyuan"
redis 127.0.0.1:6379> zrange students 1 2
1) "yuanyuan"
redis 127.0.0.1:6379>

四、linux 上redis 的安装。

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


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

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

yangyi@yangyi:/$ cd /home/yangyi/
yangyi@yangyi:~$ sudo wget http://redis.googlecode.com/files/redis-2.6.5.tar.gz

(2)解压并安装,tar xzf 解压 ,进入解压后的目录,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的安装目录,才能启动它。

yangyi@yangyi:~/redis-2.6.5$ make install


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

(4)使用,看所否已经运行。这个时候因为redis 已经启动,所以可以在任何地方,任何目录使用redis 了。执行 :redis-cli 就可以使用redis 了。
yangyi@yangyi:/$ redis-cli
redis> get foo
"bar"
redis> exit
yangyi@yangyi:/$ cd /
yangyi@yangyi:/$ redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
redis> 
表明。redis 已经安装成功,并且可以使用了。(*^__^*)


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

 sudo gedit /etc/rc.local

添加
/usr/local/bin/redis-server



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

直接:

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

启动/关闭

yangyi@yangyi:/usr/local/bin$ sudo /etc/init.d/redis-server stop
yangyi@yangyi:/usr/local/bin$ sudo /etc/init.d/redis-server start