redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比较高效的。项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便redis、memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其实都能满足目前项目的需求;但是redis还是比较风骚的,支持链表和集合操作,支持正则表达式查找key,目前项目缓存的结果大多是链表,如果链表新增或者修改数据的话,redis就体现出了极大的优势(memcached只能重新加载链表,redis可以对链表新增或者修改)
1:下载redis
下载地址 http://code.google.com/p/redis/downloads/list
推荐下载redis-1.2.6.tar.gz,之前这个版本同事已经有成功安装运行的经验,redis-2.0.4.tar.gz 这个版本我安装后无法操作缓存数据,具体原因后续再说
2:安装redis
下载后解压 tar zxvf redis-1.2.6.tar.gz 到任意目录,例如/usr/local/redis-1.2.6
解压后,进入redis目录
cd /usr/local/redis-1.2.6
make PREFIX=/usr/local/redis install
//安装完成后,会/usr/local/redis/bin/目录下生成5个可执行文件,
ls /usr/local/redis/bin/
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
redis-benchmark -n 100000 -c 60
向redis服务器发送100000个请求,每个请求附带60个并发客户端
redis-check-dump: 检查file.rdb 文件
redis-check-aof:检查file.aof 文件
拷贝文件
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc 这个文件时redis启动的配置文件
3:修改配置
修改配置之前,请将redis.conf copy一份到/etc/目录下
daemonize no
改成
daemonize yes
这两个参数
loglevel warning
logfile /var/log/redis.log
取消注释
syslog-enabled no #这个改成syslog-enabled yes
syslog-facility local0
数据文件目录
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/db/redis
内存,连接数设置
maxmemory 256000000
maxclients 500
设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
值得注意的一点是,redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)
开启redis端口,修改防火墙配置文件
vi /etc/sysconfig/iptables
加入端口配置
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
重新加载规则
service iptables restart
4:启动redis服务
[root@Architect redis]# pwd
/usr/local/redis
[root@Architect redis-1.2.6]# bin/redis-server /etc/redis.conf
查看进程,确认redis已经启动
[root@Architect redis-1.2.6]# ps -ef | grep redis
root 401 29222 0 18:06 pts/3 00:00:00 grep redis
root 29258 1 0 16:23 ? 00:00:00 redis-server /etc/redis.conf
如果这里启动redis服务失败,一般情况下是因为redis.conf文件有问题,建议检查或找个可用的配置文件进行覆盖,避免少走弯路,这里建议,修改redis.conf,设置redis进程为后台守护进程
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes
5:测试redis
[root@Architect redis-1.2.6]# redis-cli
redis> set name songbin
OK
redis> get name
"songbin"
6:关闭redis服务
redis-cli shutdown
redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定
强制备份数据到磁盘,使用如下命令
redis-cli save 或者 redis-cli -p 6380 save(指定端口)
7:启动 Redis 服务
src/redis-server或者src/redis-server redis.conf
src/redis-server redis.conf 1>log.log 2>errlog.log
1为标准输出,2为错误输出
将 Redis 作为 Linux 服务随机启动
vi /etc/rc.local, 加入代码:
/root/install/redis-2.4.9/src/redis-server
=========================redis.conf更多配置==========================
《 EOF
#daemonize:是否以后台daemon方式运行
daemonize yes
#pidfile:pid文件位置
pidfile /var/run/redis.pid
#bind:监听的ip地址
bind 10.0.100.70
#port:监听的端口号
port 6379
#timeout:请求超时时间,单位秒
timeout 120
#loglevel:log信息级别,支持四个级别,debug,notice,verbose,warning
loglevel warning
#日志文件位置
logfile /usr/local/redis/var/redis.log
#databases:开启数据库的数量
databases 16
##snapshoot
#save * *:保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
#在900秒之内,redis至少发生1次修改则redis抓快照到磁盘
save 900 1
#在300秒之内,redis至少发生100次修改则redis抓快照到磁盘
save 300 100
#在60秒之内,redis至少发生10000次修改则redis抓快照到磁盘
save 60 10000
#rdbcompression:是否使用压缩
rdbcompression yes
#dbfilename:数据快照文件名(只是文件名,不包括目录)
dbfilename dump.rdb
#dir:数据快照的保存目录(这个是目录)
dir /usr/local/redis/var
##aof
#appendonly:是否开启appendonlylog,AOF是另一种持久化方式,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendonly no
#appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
##slow log
#如果操作时间大于0.001秒,记录slow log,这个log是记录在内存中的,可以用redis-cli slowlog get 命令查看
slowlog-log-slower-than 10000
#slow log 的最大长度
slowlog-max-len 128
##virtual memory
#是否使用虚拟内存
vm-enabled no
#swap文件,不同redis swap文件不能共享。而且生产环境下,不建议放在tmp目录。
vm-swap-file /tmp/redis.swap
#vm大小限制。0 不限制,建议60-80% 可用内存大小
vm-max-memory 0
#根据缓存内容大小调整,默认32字节
vm-page-size 32
#page数。每 8 page 会占用1字节内存
vm-pages 134217728
#m 最大io线程数。注意: 0 标志禁止使用vm(开关真多)
vm-max-threads 4
#
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
#
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
##limit
#最大使用内存单位<bytes>,默认情况下redis会占用可用的所有内存
maxmemory 256000000
#maxclients 最大连接数, 0 表示不限制
maxclients 1024
##replication
requirepass dongnan
#slave
#master的ip地址与端口号
#slaveof 10.0.100.70 6379
#设置slave到master的认证
#masterauth dongnan
#在master服务器挂掉或者同步失败时,从服务器是否继续提供服务
slave-serve-stale-data yes
EOF
===========================
客户端连接
src/redis-cli
停止redis服务:
src/redis-cli shutdown
增删改查:
keys *
取出当前匹配的所有key
> exists larry
(integer) 0
当前的key是否存在
del lv
删除当前key
expire
设置过期时间
> expire larry 10
(integer) 1
> move larry ad4
(integer) 1
移动larry键值对到ad4数据库
> persist lv
(integer) 1
移除当前key的过期时间
randomkey
随机返回一个key
rename
重命名key
type
返回值的数据类型
type testlist
list
> ping
PONG
测试连接是否还在
>echo name
"larry"
打印
> select ad4databank
OK
数据库切换
> quit
退出连接
> dbsize
(integer) 12
当前数据库中key的数量
> info
服务器基本信息
monitor
实时转储收到的请求
config get
获取服务器的参数配置
flushdb
清空当前数据库
flushall
清除所有数据库
相关推荐
Redis安装与配置文档 Redis简介 Redis是一个完全开源免费的、高性能(NOSQL)key-value数据库,遵守BSD协议。它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并...
### Linux环境下的Redis安装与配置详解 #### 一、Redis的安装步骤 1. **下载Redis源码包** 首先需要通过wget命令下载Redis的源码包到工作目录下: ```bash wget ...
python 19、REDIS基础 1-2_NoSQL简介、Redis安装与配置、特点与应用、数据类型_Day01_pm.mp4
python 19、REDIS基础 1-1_NoSQL简介、Redis安装与配置、特点与应用、数据类型_Day01_am.mp4
Redis 是一个高性能的键值存储系统,常被用于数据库、缓存和消息中间件等场景。它支持多种数据结构,包括字符串、列表、集合、有序...了解和熟练掌握Redis的安装、配置和使用,对于提升系统的性能和可靠性至关重要。
这涉及到修改Redis配置文件/etc/redis.conf,将"bind ***.*.*.*"更改为"bind *.*.*.*",意味着监听所有可用的网络接口。但需要注意,开放远程访问可能会带来安全风险,因此通常还需要配合配置密码验证等安全措施。 ...
"Redis安装配置文档详解" Redis是一种基于内存的NoSQL数据库,具有高性能、低延迟和高可用的特点。本文档旨在指导用户如何安装和配置Redis,实现高效的数据存储和管理。 一、下载和解压Redis 下载Redis的最新版本...
##### 3.1 下载与安装 1. **下载Redis**:访问Redis官方网站(https://redis.io/download),下载适用于Windows的版本。 2. **安装Redis**:运行下载好的安装程序,按照安装向导的提示完成安装过程。 ##### 3.2 启动...
**Redis安装与配置** Redis(Remote Dictionary Server)是一款开源、高性能、无模式的键值对存储数据库,常用于数据缓存、消息队列、计数系统等场景。要开始使用Redis,首先需要进行安装和配置。 1. **安装Redis*...
### Linux系统下Redis安装与配置教程 #### 一、引言 Redis是一种广泛使用的开源内存数据结构存储系统,常被用作数据库、缓存和消息中间件。在Linux环境下安装和配置Redis相对简单且高效。本文档将详细介绍如何在...
本文将详细讲解如何在Linux环境下安装Redis,以及如何配置主服务器和从服务器。 首先,让我们从安装Redis开始。在大多数Linux发行版中,可以通过包管理器进行安装。例如,在Ubuntu或Debian上,可以使用以下命令: ...
### Linux系统下Redis安装与配置教程 #### 一、引言 Redis是一种广泛使用的开源内存数据结构存储系统,常被用作数据库、缓存和消息中间件。在Linux环境下安装和配置Redis相对简单且高效,适合开发环境及生产环境...
下载与安装 Redis - **下载 Redis**:通过 wget 命令下载最新稳定版 Redis 的压缩包。 ```bash wget http://download.redis.io/releases/redis-2.8.3.tar.gz ``` - **解压缩并编译安装**: ```bash tar xzf...
CRMHRMERPSRM100+ redis安装配置 redis安装配置 redis安装配置 redis安装配置 redis安装配置
redis6.2.6 redis.conf配置文件
### Redis安装与主从配置详解 #### 一、Redis简介 Redis是一种开源的键值对存储系统,它属于NoSQL数据库的一种,与Memcached类似但更加强大。不同于Memcached只支持内存存储,Redis的数据可以持久化存储在磁盘上,...
"Redis 配置安装详细教程" Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息代理、缓存层等。下面是 Redis 配置安装详细教程。 安装 Redis 在 Windows 操作系统中安装 Redis 非常简单。首先...