Redis数据库安装配置使用

  Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。中文官方文档:
http://www.redis.cn/documentation.html

安装Redis

官方网站:http://redis.io/

官方下载:http://redis.io/download可以根据需要下载不同版本

windows版:https://github.com/mythz/redis-windows

  安装Redis,Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行。而且Redis并不依赖任何非标准库,也没有编译参数必需添加。redis的安装出奇的简单。

下载源码:wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz

解压安装:

$ 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

$ make install

如果make继续报错,信息如下:error: jemalloc/jemalloc.h: No such file or directory

执行 make MALLOC=libc 就行

注意的是,为了防止出意外,make失败后在make的话,清理一下,执行make clean

Redis 由四个可执行文件在源码包的src文件夹中:redis-benchmark、redis-cli、redis-server、redis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:

redis-server:Redis服务器的daemon启动程序

redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

(redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-sentinel  redis-server)

将命令复制到/usr/local/bin目录,将配置文件redis.conf复制到/etc/目录

现在就可以启动了,redis只有一个启动参数,就是他的配置文件路径。

启动命令如下: redis-server         /etc/redis.conf

  注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到stdout.

添加

vm.overcommit_memory=1

刷新配置使之生效

sysctl vm.overcommit_memory=1

补充介绍:

**如果内存情况比较紧张的话,需要设定内核参数:

echo 1 > /proc/sys/vm/overcommit_memory

内核参数说明如下:

overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当调整,比如:

daemonize  yes  #转为守护进程,否则启动时会每隔5秒输出一行监控信息

save  60  1000  #减小改变次数,其实这个可以根据情况进行指定

maxmemory  256000000  #分配256M内存

下面是redis.conf的主要配置参数的意义:

daemonize:是否以后台daemon(守护进程)方式运行

pidfile:pid文件位置

port:监听的端口号

timeout:请求超时时间

loglevel:log信息级别

logfile:log文件位置

databases:开启数据库的数量

save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

rdbcompression:是否使用压缩

dbfilename:数据快照文件名(只是文件名,不包括目录)

dir:数据快照的保存目录(这个是目录)

appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。

  appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379,没有启动先启动再测试, 命令格式如下:

redis-cli.exe -h 192.168.10.61 -p 6379

[[email protected] ~]#redis-cli

Could not connect to Redis at 127.0.0.1:6379: Connection refused

not connected> exit

[[email protected] ~]# redis-server /etc/redis.conf

[[email protected] ~]# redis-cli

redis 127.0.0.1:6379> quit

redis数据结构

  redis 的作者antirez曾称其为一个数据结构服务器(data structures server),这是一个非常准确的表述,redis的所有功能就是将数据以其固有的几种结构保存,并提供给用户操作这几种结构的接口。我们可以想象我们在各种语言中的那些固有数据类型及其操作。

redis目前提供四种数据类型:string,list,set及zset(sorted set)和Hash。

string是最简单的类型,你可以理解成与Memcached一模一个的类型,一个key对应一个value,其上支持的操作与Memcached的操作类似。但它的功能更丰富。

list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。

set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。

zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。

  Hash数据类型允许用户用Redis存储对象类型,Hash数据类型的一个重要优点是,当你存储的数据对象只有很少几个key值时,数据存储的内存消耗会很小.更多关于Hash数据类型的说明请见: http://code.google.com/p/redis/wiki/Hashes

每种数据类型都提供了相应的操作方法,要使用这些方法,首先要安装redis的PHP扩展\php_redis-5.5-vc11-ts-x86我的是PHP5.5版本要对应,在PHP配置文件中添加

extension=php_igbinary.dll

extension=php_redis.dll

重新启动apache,phpinfo()查看得到结果如下即可。

编写PHP代码连接redis服务器,完成简易操作:

<?php

$redis = new Redis(); #实例化redis类

$redis->connect(‘192.168.1.251‘); #连接服务器

$redis->set(‘key‘, ‘hello ‘); #调用方法,设置string类型值

$redis->append(‘key‘, ‘world‘); #修改string类型值

echo $redis->get(‘key‘);  #获取redis key的值,并输出显示

echo $redis->type(‘key‘); #获取key 的数据类型

echo $redis->echo(‘will close...‘);# 输出字符串

$redis->close(); #关闭连接

下面罗列一些Redis类的一些属性及方法

a)连接redis server:

connect :连接server

pconnect :长连接

auth :权限验证

select :选择DB

close : 关闭连接

setOption : 设置 client 选项

getOption : 获取client选项

ping : ping redis server

echo : 输出 字符串

注意,如果频繁操作redis,不停地connect 和close会很耗性能的,这个时候,建议用pconnect 建立个长连接

b)字符串读写函数

append  :在值的后面追加值

decr :递减一个key的值

incr :递增一个key的值

get :获取一个值

set :设置一个值

getSet :设置值,并返回老值

mGet :批量获取值

mSet :批量设置值

strlen :获取值长度

注意:如果能用批量操作尽量用批量,减少频繁连接redis数据库性能

c)hash读写函数

hDel :删除一个多个域

hExists :判断一个hash域是否存在

hGet :获取hash域的值

hGetAll :获取所有域值

hIncrBy :自增长一个hash int域的值

hKeys :获取hash 所有域

hLen :获取域个数

hMGet :批量获取域的值

hMSet :批量设置域的值

hSet :设置域的值

hVals:得到所有域的值

d)list读写函数

lInsert:插入元素

lLen:list长度

lPop:移除并获取第一个颜色

lPush:插入一个元素

lRem:移除元素

lSet:设置元素值

e)set

sAdd:增加一个或多个成员

sIsMember:是否包含

sMembers:得到成员

sMove:移动成员

sPop:移除成员

sRandMember:得到随机成员

sRem:删除

f)sorted set

zAdd:增加一个或多个

zCard:成员个数

zIncrBy:递增成员score

zRange:返回索引范围内的成员

zRangeByScore :返回score范围内的成员

zScore:获取成员score

zRem:移除一个或多个成员

更多信息请参考:https://github.com/nicolasff/phpredis

redis.conf配置参数:

1)daemonize on|yes

redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes时,启用守护进程

2)pidfile /var/run/redis_6379.pid

redis以守护进程方式运行时,系统默认会把pid写入/var/run/redis.pid,可以通过pidfile指定pid文件

3)port 6379

redis默认监听6379端口,可以通过port指定redis要监听的端口

4)bind 127.0.0.1

绑定主机地址

5)unixsocket /tmp/redis.sock

指定redis监听的unix socket 路径

6)timeout 300

当客户端闲置多长时间,关闭连接,单位秒

7)loglevel verbose|debug|notice|warning

指定日志记录级别,默认是verbose

8)logfile /var/log/redis_6379.log

日志记录文件,默认是标准输出stdout,如果redis以守护进程方式运行,logfile 配置为stdout时,logs将要输出到/dev/null

9)syslog-enabled no|yes

当配置为yes时,日志输出到系统日志,默认是no

10)syslog-ident redis

指定syslog的标示符

11)syslog-facility local0

指定syslog设备(facility),必须是user或则local0到local7

12)databases 16

设置redis中数据库的个数,默认数据库是DB 0,可以通过select <dbid>,选择使用的数据库。dbis大于等于0,小于等于databases -1 【这里是16-1】

13)save <seconds> <changes>

指定多长时间内,有多少次更新操作时,将数据同步到数据库文件,可以多个条件配合,系统默认配置如下:

save 900 1 #900秒 1个修改

save 300 10 #300秒 10个更新

save 60 10000<span style="white-space:pre"> </span>#60秒 10000个更新

注意,如果不持久化【不把数据写入磁盘】,注释掉save即可。

14)rdbcompression yes|no

数据dump到数据文件时,系统是否压缩string对象数据,系统默认是yes。如果为了节省cpu,可以设置为no,此时数据文件比用LZF压缩时要大

15)dbfilename dump.rdb

指定数据库文件名,默认是dump.rdb

16)dir /var/lib/redis/6379

指定本地数据库存放目录

17)slaveof <masterip> <masterport>

当本机是slave服务时,设置master服务的ip和端口

18)masterauth <master-password>

当master服务设置了密码时,slave服务连接master的密码。如果配置不对,slave服务请求将被拒绝

19)slave-serve-stale-data yes|no

当slave和master之间的连接断开或slave正在于master同步时,如果有slave请求,当slave-serve-stale-data配置为yes时,slave可以相应客户端请求;当为no时,slave将要响应错误,默认是yes

20)requirepass foobared

设置redis连接密码

21)maxclients 128

设置同一时间客户端最大连接数,默认是无限制。如果设置maxclients 0 时,表示不限制

22)maxmemory <bytes>

指定redis最大内存限制,redis在启动时,会把数据加载到内存中,达到最大内存后,redis会先清除已到期或将过期的key,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读操作

23)maxmemory-policy

volatile-lru|allkeys-lru|volatile-random|allkeys->random|volatile-ttl|noeviction

当redis使用内存达到最大时,使用哪种策略移除内存中数据

24)appendonly no|yes

指定是否在每次更新操作后进行日志记录,默认配置是no,即在采用异步方式把数据写入到磁盘,如果不开启,可能会在断电时导致部分数据丢失

25)appendfilename appendonly.aof

指定更新日志文件名【aof日志】,默认为appendonly.aof

26)appendfsync everysec|no|aways

指定更新日志条件,no表示等操作系统进行数据缓存同步到磁盘的aof文件(快)always表示每次更新操作后手动调用fsync将数据写到磁盘的aof文件(慢,安全)

everysec,表示每秒同步一次(拆中,默认值)

27)slowlog-log-slower-than 10000

配置记录慢日志的条件,单位是微妙,当是负值时,关闭慢日志记录,当是0时,记录所有操作

28)slowlog-max-len 1024

配置记录慢查询的最大条数

29)hash-max-zipmap-entries 512

配置最大元素数,当超过该配置数据时,redis采用特殊hash算法

30)hash-max-zipmap-value 64

配置最大元素值,当草果配置值时,采用特殊hash算法

31)activerehashing yes

指定是否激活充值hash,默认开启

可以通过下面命令使用配置文件redis.conf启动redis服务

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

时间: 2024-08-25 21:49:08

Redis数据库安装配置使用的相关文章

redis数据库安装配置

一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,Redis支持各种不同方式的排序. 和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到

Redis 的安装配置介绍

redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.它提供了Python,Ruby,Erlang,PHP客户端,使用很方便.问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例.此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的. 性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81

浅谈Redis及其安装配置

一.Redis的介绍 二.Redis的安装配置 三.Redis的配置文件说明 四.Redis的简单操作 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持 数据模型: 作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系.但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:    L

Redis数据库安装部署

1.安装版本 redis-3.0.7.tar.gz 官网链接:http://redis.io/download 2.下载安装包 wget http://download.redis.io/releases/redis-3.0.7.tar.gz 3.解压 tar -zxvf redis-3.0.7.tar.gz 解压后进入redis-3.0.7文件夹内 4.安装 Redis文件夹自带makefile文件,直接在redis-3.0.7文件夹中输入make命令即可. 5.运行redis cd src执

windows下redis的安装配置和php扩展使用phpredis

1. 首先安装先下载redis数据库     下载地址: http://code.google.com/p/servicestack/wiki/RedisWindowsDownload 目前是2.02版本,也可以到我的115网盘下载: http://115.com/lb/5lbf215 2.解压安装文件.得到以下目录 redis-server.exe:服务程序 redis-check-dump.exe:本地数据库检查    redis-check-aof.exe:更新日志检查    redis-

Linux服务器运行环境搭建(二)——Redis数据库安装

官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxvf redis-2.8.17.tar.gz 3. 进入解压缩后的文件夹:cd redis-2.8.17 4. 编译源码:make (1)若出现如下提示,则说明未安装gcc,使用命令安装gcc:yum install gcc [[email protected] redis-2.8.17]# make

ubuntu环境下redis的安装配置

1. 简要介绍 dis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都 支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排 序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周

Redis的安装配置及简单集群部署

最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基于内存且支持持久化的key-value的NoSQL数据库,其中每个key和value都是使用对象表示的,具有以以下特征:多样数据类型.持久化.主从同步.它支持存储的value类型包括string(字符串).list(链表).hash(哈希).set(集合)和zset(有序集合).这些数据类型都支持p

SuSE Linux 11 下informix数据库安装配置

Informix是IBM公司出品的关系数据库管理系统(RDBMS)家族.现在用的人越来越少啦,各大运营商倒是还有用的,工作需要,还是要学习一下安装. 系统: SUSE Linux Enterprise Server 11 (x86_64) 一.安装 1.以root用户身份创建informix组和用户,假设informix用户的HOME目录为/opt/informix # groupadd  informix # useradd  -g  informix  -d  /opt/informix