设为首页 加入收藏

TOP

redis基础入门(一)
2015-11-21 01:31:27 来源: 作者: 【 】 浏览:0
Tags:redis 基础 入门

:感觉介绍的浅显易懂,所以推荐

What is Redis?

Redis是 Salvatore Sanfilippo 开发的,开源的,高效的基于内存的键值缓存服务,所谓的NoSQL数据库 。它可以存储 strings, hashes, lists, sets, sorted sets等结构的数据。
键值存储的实质是能够存储数据,而且在之后调用具体的键名,可以检索出之前插入的数据。

Usage of Redis

Salvatore Sanfilippo (creator of Redis) 说Redis 能够被用于替代RDBMS数据库,现在想想,尽管没有什么是不可能的,但是它仍然是一个欠妥的想法。因为Redis在数据的事务操作,以及主从服务的数据同步上还不是很完善。
以下是Redis使用的地方,尽管还有好多地方可以用到:
有跟 memcached一样的缓存功能,并且支持各种数据结构。丰富的存储方式会省去好多Array的拼接,提高性能
Leaderboards or related problems.
Counting stuff.
Real time analysis.
Deletion and filtering.
在你的首页显示最新的项目

Aim of this Article

文章并不是去展示给你 Redis的语法知识 , 而是在PHP中怎么去使用Redis

Install Redis

Redis很容易去安装,包括Windows和Linux

Install Redis on Linux

安装Redis:

$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz
$ tar xzf redis-2.8.19.tar.gz
$ cd redis-2.8.19
$ make

Note: 2.8.19 请替换成最新版本

Redis的服务启动都位于安装目录下src目录下,包括redis-cli, 用于Redis的客户端操作,下面是启动Redis服务。

$ src/redis-server 

Install on Windows

暂不介绍

Install Predis a Redis Client for PHP

Predis 是Redis的一个客户端. 它被社区支持,GitHub上直接下载就可以,下图安装了GitHub客户端或者Git软件,进行下载

$ git clone git://github.com/nrk/predis.git 

Connecting to Redis

首先,我们 require Redis 的自动加载函数. 之后使用try语句块包裹。以下是连接本地以及远程服务的地址,在虚拟机中安装的服务,请按照远程的配置进行。host使用ifconfig查看,默认的端口是6379.


       "tcp", "host" => "153.202.124.2", "port" => 6379 )); */ } catch (Exception $e) { die($e->getMessage()); } 

现在我们已经成功的连接了Redis服务器,马上开始学习

Redis Datatypes

Redis使用了丰富的数据类型,可以帮助开发者存储更有意义的数据结构,或者说更接近真实的数据,让检索变得更加高效。下面是Redis支持的数据类型:

String: 字符串,类似于memcache
List: 类似于一维数组。 可以使用 push, pop, shift and unshift等方法
Hash: Map用于存储多个键值对。
Set: 无序的,不重复的
Sorted Set: 有序的,不重复的。你一定想知道它怎么能有序: 在存储的时候需要指定一个score值,用于排序,从最小到最大,而且可以相等。

Getters and Setters

在Redis中,最重要的命令可能属 SET, GET and EXISTS. 这些命令用于去从Redis服务器存储,获取,检查。Redis的操作就跟命令要表达的字面意思是一样的。


       set(';message';, ';Hello world';); // gets the value of message $value = $redis->get('message'); // Hello world print($value); echo ($redis->exists('message')) ? "Oui" : "please populate the message key"; 

Increments and Decrements

INCR and DECR 命令被用于去增加或减少值


        set("counter", 0); $redis->incr("counter"); // 1 $redis->incr("counter"); // 2 $redis->decr("counter"); // 1 

当然,你也可以指定增加的具体值,使用 INCRBY and DECRBY命令


         set("counter", 0); $redis->incrby("counter", 15); // 15 $redis->incrby("counter", 5); // 20 $redis->decrby("counter", 10); // 10 

Working with Lists

这里还有基本的一些命令

LPUSH: 插入数据到list的开头
RPUSH: 插入数据到list的末尾
LPOP: 移除list开头的元素并返回该元素
RPOP: 移除list末尾的元素并返回该元素
LLEN: 获得list的长度
LRANGE: 获得list中所有的元素

Simple List Usage:


          rpush("languages", "french"); // [french] $redis->rpush("languages", "arabic"); // [french, arabic] $redis->lpush("languages", "english"); // [english, french, arabic] $redis->lpush("languages", "swedish"); // [swedish, english, french, arabic] $redis->lpop("languages"); // [english, french, arabic] $redis->rpop("languages"); // [english, french] $redis->llen("languages"); // 2 $redis->lrange("languages", 0, -1); // returns all elements $redis->lrange("languages", 0, 1); // [english, french] 

Working with Hashes

hash 是一了键值对的集合,类似于一对多的关系.常用的命令有:

HSET: 设置一个key-value值
HGET: 获取hash中key的值
HGETALL: 返回hash中所有的值
HMSET: 设置hash多个值
HDEL: 从hash中删除一个值
HINCRBY: 给hash中元素增加一个指定值

           hset($key, 'age';, 44); $redis->hset($key, 'country';, ';finland';); $redis->hset($key, 'occupati
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇iosCoreData用父类的实例对象pers.. 下一篇关于控制文件转储后的trace文件中..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: