关闭

高性能键值对系统Redis介绍及安装详解

标签: redis高性能数据库
1077人阅读 评论(0) 收藏 举报
分类:

Redis介绍

Redis如今已经成为Web开发社区最火热的内存数据库之一,随着Web2.0的快速发展,再加上半结构数据比重加大,网站对高效性能的需求也越来越多。
而且大型网站一般都有几百台或者更多Redis服务器。Redis作为一款功能强大的系统,无论是存储、队列还是缓存系统,都有其用武之地。

Redis Github开源

Redis:一款基于C语言开发的高性能NOSQL系统
我已经将Redis源码fork到我的github仓库了,可以去我的github上看看https://github.com/JLGPL/redis

Linux下安装Redis

下载解压Redis

本博客介绍Redis-2.6.14版本的安装
按照Linux系统安装常规,我们一般先下载源代码到/usr/local/src目录下面
进入目录:

cd /usr/local/src

注意googlecode需要翻墙才可以下载的,我们使用wget命令下载源码

wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz

不可以翻墙的话,可以使用下面命令下载

wget http://download.redis.io/releases/redis-2.8.3.tar.gz

解压Redis源代码

tar xzf redis-2.6.14.tar.gz

安装gcc

因为Redis系统是基于C语言开发的,所以我们需要安装好Linux的GCC环境,
也就是编译C语言、C++或者Java的环境
因为有些系统是有预装好yum的,所以这种情况下就可以使用如下命令

yum install gcc

想要自己安装gcc的,可以参考我的教程:http://blog.csdn.net/u014427391/article/details/71194527

安装Redis

建立Redis链接

ln -s redis-2.6.14 redis

进入Redis文件夹目录

cd redis

安装Redis到/usr/local/redis

make PREFIX=/usr/local/redis install

这时,你去看一下/usr/local/redis里面已经生成里build目录,
下面有如下脚本redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server

添加Redis服务

复制脚本

普及一下Linux知识,/etc/rc.d/init.d下面的脚本相当于window系统的注册表,也就是说在Linux系统启动的时候,这些脚本都会被自动执行,我们这是就需要将redis的初始化脚本(/usr/local/src/redis/utils/redis_init_script)发到该目录下面,目的就是系统启动的时候,实现redis初始化操作。
复制脚本代码如下,使用cp命令

cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis

VI编辑Redis配置

大多数情况下,我们都需要修改Redis默认配置的,中文注释的地方就是需要修改的

#!/bin/sh 
#添加改配置
#chkconfig: 2345 80 90 
# Simple Redis init.d script conceived to work on Linux systems 
# as it does use of the /proc filesystem. 

REDISPORT=6379
#修改Redis-server路径 
EXEC=/usr/local/redis/bin/redis-server 
#修改Redis-cli路径
CLIEXEC=/usr/local/redis/bin/redis-cli 

PIDFILE=/var/run/redis_${REDISPORT}.pid 
CONF="/etc/redis/${REDISPORT}.conf" 

case "$1" in 
    start) 
        if [ -f $PIDFILE ] 
        then 
                echo "$PIDFILE exists, process is already running or crashed" 
        else 
                echo "Starting Redis server..." 
                $EXEC $CONF & #加入&符号,使Redis服务后台运行
        fi 
        ;; 
    stop) 
        if [ ! -f $PIDFILE ] 
        then 
                echo "$PIDFILE does not exist, process is not running" 
        else 
                PID=$(cat $PIDFILE) 
                echo "Stopping ..." 
                $CLIEXEC -p $REDISPORT shutdown 
                while [ -x /proc/${PID} ] 
                do 
                    echo "Waiting for Redis to shutdown ..." 
                    sleep 1 
                done 
                echo "Redis stopped" 
        fi 
        ;; 
    *) 
        echo "Please use start or stop as first argument" 
        ;; 
esac 

解释:
因为我们已经将Redis安装到/usr/local/redis目录下面了,使用需要修改redis配置,使其可以找到Redis-server和Redis-cli服务

添加&符号的作用是使Redis服务后台运行,否则,启动Redis服务时,占据在前台,占用了主用户界面,造成其它的命令执行不了

注册启动Redis服务

注册Redis服务

chkconfig --add redis

启动Redis服务

service redis start

设置Redis全局使用

这时需要修改系统配置
同样使用VI编辑器进行修改

vi /etc/profile

在配置文件后面加入

export PATH="$PATH:/usr/local/redis/bin"

wq保存退出,当然其实WinSCP工具是可以实现像window系统类似的文件编辑的,所以vi命令不熟,可以使用WinSCP可视化操作

应用配置

. /etc/profile

使用Redis服务

然后我们可以在Redis源代码路径下面,检测redis进程是否启动了

ps -ef | grep redis

可以看到如下类似的,说明redis安装成功

root@ubuntu 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-cli   
redis 127.0.0.1:6379> auth superman   
OK   
redis 127.0.0.1:6379> ping   
PONG   
redis 127.0.0.1:6379>
1
0
查看评论

Redis单实例能够处理多少key,每个数据类型能够处理多少元素

原文地址:http://redis.io/topics/faq What is the maximum number of keys a single Redis instance can hold? and what the max number of elements in a Hash, ...
  • tanga842428
  • tanga842428
  • 2016-09-24 11:01
  • 3019

Redis中的键值对设计

丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。   下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系...
  • nyist327
  • nyist327
  • 2015-08-28 22:25
  • 1649

Redis键值对数据库学习笔记

redis.conf 配置说明 1.Redis默认不是以守护进程的方式运行的,可以通过该配置项修改 daemonzie no 2.当redis以守护进程方式运行时,redis默认会把pid写进/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/...
  • xxoo00xx00
  • xxoo00xx00
  • 2017-06-09 10:14
  • 485

redis的类型、原理及使用场景

转自:http://blog.csdn.net/hguisu/article/details/8836819 1.  MySQL+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满...
  • jinfeiteng2008
  • jinfeiteng2008
  • 2016-12-17 20:00
  • 5119

redis常用命令及高级应用之键值的相关命令

keys返回满足给定pattern的所有key例如:返回所有键127.0.0.1:6379> keys * 1) "list3" 2) "myset5" 3) "list6" 4) "myset2" 5)...
  • qq_28602957
  • qq_28602957
  • 2016-09-27 20:18
  • 2556

批量删除redis特殊键值

#!/usr/bin/env bash #定义redis 集群数组 cluster=("master" "node1" "node2") #定义redis集群实例开放端口 port=(7000 7001 7002) #获取指定类型键值的数据...
  • u012164361
  • u012164361
  • 2017-11-16 12:08
  • 164

Redis 3.0介绍及集群说明

Redis是一个开源、基于C语言、基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API。近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了。Redis 3.0的最重要特征是对Redis集群的支持,此外,该版本相对于2.8版本在性能、稳定性等方面都有了重大提高。 ...
  • tianwei7518
  • tianwei7518
  • 2015-04-11 00:30
  • 2146

浅谈Redis的键值设计

NoSQL带给我们的东西很多,高性能,水平扩展性,还有不一样的思维方式。本文来自@hoterran的个人博客运维与开发,作者列举了几种常用的应用场景,分别描述了其关系型数据库和Redis下的不同存储设计方法。值得参考。 丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和...
  • googlevsbing
  • googlevsbing
  • 2016-06-30 17:30
  • 552

redis使用(二):五种键值类型

redis string hash list set sorted set
  • sbjiesbjie
  • sbjiesbjie
  • 2015-10-03 01:13
  • 3570

REDIS性能调优说明

内存管理优化         Redis Hash是value内部为一个HashMap,如果该Map的成员数比较少,则会采用类似一维线性的紧凑格式来存储该Map, 即省去了大量指针的内存开销,这个参数控制对应在re...
  • xiefu5hh
  • xiefu5hh
  • 2016-07-02 20:20
  • 1184
    个人资料
    • 访问:517722次
    • 积分:5538
    • 等级:
    • 排名:第5715名
    • 原创:125篇
    • 转载:7篇
    • 译文:6篇
    • 评论:258条
    About Me
    Turtles
    Clock
    博客专栏