PHP中redis 的安装和使用(1)
一、套用别人的话: 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
推荐阅读