FTP服务器 SQL server WEB服务器 windos server Exchange ISA server 域服务器 其他服务器 服务器虚拟化技术 网站技术Linux操作系统 服务器硬件技术 服务器阵列技术
返回首页

构建高性能数据库缓存之Redis(一)

时间:2014-06-23 12:24来源:未知 作者:admin 点击:
构建高性能数据库缓存之Redis(一) 一、 Redis 概述 1 、 1 什么是 redis Redis 是一个开源的用 ANSI C 编写、支持网络、基于内存、亦可持久化的日志型、 Key-Value 数据库,根据 DB-Engines.com 站点月度排行的数据显示, Reidis 是最流行的键值对存储数据

 

 构建高性能数据库缓存之Redis(一) copyright by http://www.server-cn.com/

一、Redis概述

http://www.server-cn.com/

1、1 什么是redis 本文来自服务器配置网

Redis是一个开源的用ANSI C编写、支持网络、基于内存、亦可持久化的日志型、Key-Value数据库,根据DB-Engines.com站点月度排行的数据显示,Reidis是最流行的键值对存储数据库,现在的开发由VMware主持。 http://www.server-cn.com/

 1、2 Redis支持语言与数据类型 copyright by http://www.server-cn.com/

Redis提供多种语言的API,包括:Perl、PHP、Python、Ruby、Lua、C、C++、C#等;与Memcache相比,Redis中值(Value)的类型不仅限于字符串(strings),可以支持的类型还包括哈希表(hashes)、列表(lists)、集合(sets)和排序集(sorted sets)。而且值的类型决定了值本身支持的操作,Redis支持不同无序、有序的列表,无序、有序的集合间的交集、并集等高级服务器端原子操作。 copyright by http://www.server-cn.com/

wKiom1ORgiOT6tamAAL9ocNaFLQ737.jpg copyright by http://www.server-cn.com/


http://www.server-cn.com/

1持久化

Redis通常将全部的数据存储在内存中。2.4版本后可配置为使用虚拟内存[6]一部分数据集存储在硬盘上,但这个特性废弃了。

http://www.server-cn.com/

目前通过两种方式实现持久化

服务器配置网

使用快照,一种半持久耐用模式。不时的将数据集以异步方式从内存以RDB格式写入硬盘。 http://www.server-cn.com/

1.1版本开始使用更安全的AOF格式替代,一种只能追加的日志类型。将数据集修改操作记录起来。Redis能够在后台对只可追加的记录作修改来避免無限增长的日志。

copyright by http://www.server-cn.com/

 

本文来自服务器配置网

14同步

Redis支持主从同步,数据可以从主服务器任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器,这使得Redis可以执行单层树复制。从盘可以有意无意的对数据进行写操作,使得从数据库在任何地方同步树时,可以订阅一个频道并接收主服务器完整的消息发布记录;同步对读取操作的可扩展性和数据冗余何有帮助。至今使用Redis的公司包括百度、新浪、搜狐、TencentDisqusDiscourse、暴雪娱乐、TweetDeckGitHUBTwitter等; 服务器配置网

 

copyright by http://www.server-cn.com/

参考文献: http://www.server-cn.com/

http://zh.wikipedia.org/zh/Redis http://www.server-cn.com/

http://baike.baidu.com/view/4595959.htm?fr=aladdin

内容来自服务器配置网

http://redis.cn/topics/introduction.html 本文来自服务器配置网

 

http://www.server-cn.com/

二、安装Redis

2下载、编译与安装

Redis官网下载地址:http://download.redis.io/releases/redis-2.8.9.tar.gz 本文来自服务器配置网

  本文来自服务器配置网

##代码段 服务器配置网

[root@redis_mastersource]# cd /home/source/ http://www.server-cn.com/

[root@redis_mastersource]# wget http://download.redis.io/releases/redis-2.8.9.tar.gz

服务器配置网

[root@redis_mastersource]# tar -xf redis-2.8.9.tar.gz

http://www.server-cn.com/

[root@redis_masterredis-2.8.9]# cd redis-2.8.9 http://www.server-cn.com/

[root@redis_masterredis-2.8.9]# make

本文来自服务器配置网

 

服务器配置网

2配置与运行Redis

#代码段

服务器配置网

[root@redis_masterredis-2.8.9]# mkdir /etc/redis

copyright by http://www.server-cn.com/

[root@redis_masterredis-2.8.9]# cp redis.conf /etc/redis/ 本文来自服务器配置网

[root@redis_master~]# vim /etc/redis/redis.conf

http://www.server-cn.com/

##提示:指定存放redis日志的文件,默认发送至/dev/null文件中;

服务器配置网

logfile"/var/log/redis/redis.log" http://www.server-cn.com/

[root@redis_master~]# mkdir /var/log/redis/ copyright by http://www.server-cn.com/

[root@redis_master~]# redis-server /etc/redis/redis.conf &

http://www.server-cn.com/

 

http://www.server-cn.com/

22检测运行结果

#代码段

copyright by http://www.server-cn.com/

[root@redis_master~]# netstat -lntp | grep redis copyright by http://www.server-cn.com/

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

copyright by http://www.server-cn.com/

tcp        0     0 :::6379                     :::*       LISTEN      40299/redis-server  服务器配置网

  本文来自服务器配置网

三、测试

31 Redis客户端连接模式

[root@redis_master~]# redis-cli set mykey 'hello world!'            #设置一个keyvalue http://www.server-cn.com/

OK

内容来自服务器配置网

[root@redis_master~]# redis-cli get mykey                           #获取key上的value

http://www.server-cn.com/

"helloworld!"

http://www.server-cn.com/

[root@redis_master~]# redis-cli type mykey       #获取key的类型,显示结果为字符串(string 服务器配置网

String

服务器配置网

[root@redis_master~]# redis-cli strlen mykey     #获取key的长度,其中空格也占用一个字符; 服务器配置网

(integer) 12 内容来自服务器配置网

  http://www.server-cn.com/

##提示:可以通过SHELL脚本操纵Redis数据库;

http://www.server-cn.com/

32 telnet 客户端连接模式

[root@redis_master~]# telnet 127.0.0.1 6379 http://www.server-cn.com/

Trying 127.0.0.1... 内容来自服务器配置网

Connected to127.0.0.1.

copyright by http://www.server-cn.com/

Escape characteris '^]'.

内容来自服务器配置网

set test"welcome to bei jing"

http://www.server-cn.com/

+OK http://www.server-cn.com/

get test 服务器配置网

$19 服务器配置网

welcome to beijing

本文来自服务器配置网

strlen test 内容来自服务器配置网

:19 本文来自服务器配置网

quit

copyright by http://www.server-cn.com/

+OK 服务器配置网

Connection closedby foreign host. 本文来自服务器配置网

3附加shell测试脚本

[root@redis_master~]# cat test_redis.sh 服务器配置网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
#descrition: testredis database 
#author: cfwl,crate date of 2014-06-06 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
  
#operation redisdatabase
printf"\033[32mPlease Input One \'Key\' and \'Value\':\033[0m " key value
read key value
  
#create key 
redis-cli SET $key$value
printf"\n"
  
#To obtain key
redis-cli GET $key
printf"\n"
  
#Judge key to datatype
redis-cli TYPE$key
printf"\n"
  
#Delete key
printf"\033[33mYour Miss Delete The key? \(y|n\):\033[0m  "
read str
while [[ $str !="y" ]]
        do
                printf "\033[33mYour MissDelete The key? \(y|n\):\033[0m  "
                read str
                [ $str = 'y' ] &&redis-cli DEL $key $value && printf "\n"
        done
  
#Judge key ifexists
redis-cli EXISTS$key

 

内容来自服务器配置网

 

http://www.server-cn.com/

3测试结果wKiom1ORg33hPV0OAAD5d5s5x68967.jpg

 

四、相关参数详解

SET                      创建一个key 内容来自服务器配置网

GET                      获取一个key的值; 服务器配置网

DEL                      ***一个key

http://www.server-cn.com/

TYPE                     获取一个key的类型; copyright by http://www.server-cn.com/

EXISTS                   判断一个key是否存在,0:存在,1,不存在; 服务器配置网

KEYS                         获取给定模糊匹配的key

http://www.server-cn.com/

EXPIRE                       设置一个key过期的秒数; 内容来自服务器配置网

PERSTST                      ***一个key过期的秒数;

copyright by http://www.server-cn.com/

PEXPIRE                      设置一个key过期的毫秒数;

服务器配置网

RENAME                   将一个key重命名; copyright by http://www.server-cn.com/

RENAMENX                 将一个key重命名,且新的key必须是不存在的可以;

服务器配置网

TTL                      获取key的有效时间; 内容来自服务器配置网

 

http://www.server-cn.com/

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容