Redis 安装及配置_laiconglin的博客-程序员秘密

技术标签: character  服务器  测试工具  数据库  redis  数据结构  

安装过程:

 

Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。

Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。

一、下载最新版

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

二、解压缩

tar redis-2.0.0-rc4.tar.gz

三、安装C/C++的编译组件(非必须)

apt-get install build-essential

四、编译

cd redis-2.0.0-rc4
make

make命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 
在后面会有这几个命令的说明,当然是从网上抄的。。。

五、修改配置文件

/etc/sysctl.conf

添加

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后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运 行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前 它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是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等待系统自己同步)

 

下面是一个略做修改后的配置文件内容:

daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024
 

将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下

然后在命令行执行:

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

即可在后台启动redis服务,这时你通过

1
telnet 127.0.0.1 6379

即可连接到你的redis服务。

六、启动服务并验证

启动服务器

 

./redis-server 
或 
$redis-server /etc/redis.conf  
查看是否成功启动 
$ ps -ef | grep redis   
或 
./redis-cli ping 
PONG

七、启动命令行客户端赋值取值

 

redis-cli  set mykey somevalue

 (如果redis-cli需要登录的并不是标准的6379以及localhost,那么可以像下面的类似的方法来实现 redis-cli -H 192.168.0.123 -p 6380 set mykey somevalue)

./redis-cli get mykey

 

八、关闭服务

$ redis-cli shutdown     

#关闭指定端口的redis-server  

$redis-cli -p 6380 shutdown 


九、客户端也可以使用telnet形式连接。

[[email protected] conf]# telnet 127.0.0.1 6379 
Trying 127.0.0.1... 
Connected to dbcache (127.0.0.1). 
Escape character is '^]'. 
set foo 3 
bar 
+OK 
get foo 
$3 
bar 
^] 
telnet> quit 
Connection closed.

 

十. 开放redis的端口,否则客户端无法连接。

方法如下:

vi /etc/sysconfig/iptables #需要具备其修改权限

 

增加一行:

# redis
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

 

保存后重启iptables:

service iptables restart (PATH中加入了/sbin/)或者 /etc/init.d/iptables restart

 

 

十一.同步机制

redis实现的同步机制相对简单,缺少同步机制常见的check point和校验机制。
在运行时,如果master -> slave同步请求转发被丢弃, slave将无法恢复该请求的相关信息,直到slave重启时从master全量加载数据时才能修复。因此,建议使用redis尽量利用其key/value和value支持多种类型的特性,存储一些相对不重要的数据。
本文来着网络


来自于:http://blog.csdn.net/xymyeah/article/details/6579705

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/laiconglin/article/details/6641802

智能推荐

Sona_a8233821的博客-程序员秘密

SonaSona,Maven of the Strings. Of cause, she can play the zither.Sonacan't speak but she can make fancy music. Her music can attack, heal, encourage and enchant.There're an ancientsco...

分享2个近期遇到的MySQL数据库的BUG案例_程序员阿沐的博客-程序员秘密

作者:懂点IT的耿小厨近一个月处理历史数据问题时,居然连续遇到了2个MySQL BUG,分享给大家一下,也欢迎指正是否有问题。  BUG1:  数据库版本: MySQL5.7.25 - 28  操作系统: Centos 7.7(不重要)  数据库架构: 主-从-级联从  数据库参数:innodb_support_xa = 1 # 因主库存在XA事务,因此设置支持xa事务replicate_wild_do_table=yy.% # 只同步其中一个库异常场景:级联从库上同步从库中的

PAT-A1136 A Delayed Palindrome (20分)_Sober97的博客-程序员秘密

题目描述:Consider a positive integer N written in standard notation with k+1 digits a​i​​ as a​k​​ ⋯a​1​​a​0​​ with 0≤ a​i​​ <10 for all i and a​k​​ >0. Then N is palindromic if and only if a​i​​ =a​k−i​​ for all i. Zero is written 0 and is also pali

黑马程序员--Java基础Day02_LewisD_的博客-程序员秘密

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------1:关键字(掌握)1) 被Java语言赋予特定含义的单词。2) 特点:全部小写。3) 注意事项: goto和const作为保留字存在。   高级工具编写中关键字是会显示特殊颜色。2:标识符(掌握)1) 就是给类,接口,方法,变量等起名字的字符序列2) 组成规

Js中window属性和方法_ah_ty的博客-程序员秘密

一、window属性和方法1. confirm//效果类似于alert,但是有一个bool类型的返回值var result=confirm("请确认");alert(result);2. setTimeout//延迟函数,时间单位是毫秒setTimeout(function(){    alert("asassaa");},1000);3. setInter

大数据开发岗大厂面试30天冲刺 - 日积月累,每日五题【Day02】——Hive2_Maynor996的博客-程序员秘密

前言大家好,我是manor。相信大家和我一样,都有一个大厂梦,作为一名大数据专业学生、爱好者,深知面试重要性,很多学生已经进入暑假模式,暑假也不能懈怠,正值金九银十的秋招接下来我准备用30天时间,基于大数据开发岗面试中的高频面试题,以每日5题的形式,带你过一遍热门面试题及恰如其分的解答。相信只要一路走来,日积月累,我们终会在最高处见。以古人的话共勉:道阻且长,行则将至;行而不辍,未来可期!本栏目大数据开发岗高频面试题主要出自大数据技术专栏的各个小专栏,由于个别笔记上传太早,排版杂乱,后面会

随便推点

数据库分页技术的实现_浅瞳夜未的博客-程序员秘密

            在Web开发中,为了方便美观的展示数据,使用分页是必不可少的一项技术。然后实现分页的方法有多种多样,在这里我就以我自己的理解和方式给大家演示一下怎么做分页,做分页都需要哪些准备工作。准备工作:1.在Web编译工具中创建Web工程2.搭建低层的运行环境。3.开发实体类,实现逻辑代码的统一调用,完成彼此之间的分工和协作。     我是用SpringMvc模...

虾皮电商shopee多店铺需要IP隔离吗?怎么做?_shopee需要干净的网络吗_vx_cybq66的博客-程序员秘密

虾皮上有很多做店群的小伙伴,特别是做本土的,基本都是店群的模式在做的。因为量大出奇迹。通过大量的店铺疯狂的铺货来截流平台的自然流量,从而获取大量订单,这就是目前店群的操作方式。但是店群也是有缺点的,因为平台本身就不允许多账户的形式存在。清橙跨境 如果太多这种形式的店铺存在平台上会影响用户的购物体验。所以平台基本是查到一个封到一个。为什么说新手小白不建议搞店群就是这个原因,如果操作不当亏到血本无归都有可能。IP关联是怎么回事?IP关联就是一条网线上同时挂三个或三个以上的不同资料注册的店铺。这样很容易被

linux默认的锁定用户时间设置,linux用户登录失败n次-锁定用户(几分钟后该用户再自动解锁)..._weixin_39569389的博客-程序员秘密

linux用户登录失败n次-锁定用户(几分钟后该用户再自动解锁) (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分数据交换平台加固方案 1.设置密码复杂度策略设置密码复杂度策略 .1 2.登录失败锁定策略登录失败锁定策略.1 2.1.确定使用PAM_TALLY2.SO 模块还是PAM_TALLY.SO 模块1 2.2.使用PAM_TA...

MUI 下拉刷新_mui的下拉刷新_letMeAlone_的博客-程序员秘密

为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机上,DIV动画经常出现卡顿现象(特别是图文列表的情况); mui通过双webview解决这个DIV的拖动流畅度问题;拖动时,拖动的不是div,而是一个完整的webview(子webview),回弹动画使用原生动画;在iOS平台,H5的动画已经比较流畅,故依然使用H5方案。两个平台实现虽有差异,但mui经过封

html input监听事件无效,html input的file文件输入框onchange事件触发一次失效解决方法..._西西喵的博客-程序员秘密

最近在做一个图片上传的功能,出现提交一次后,file输入框的change事件无法再次触发的bug,就是说提交一次后必须刷新才能再次提交,这就坑了~于是想办法解决它~在网上找了一些资料,找到这几种方法:1、替换掉原来的input框2、remove原来的input框,然后在添加进新的一样的input框我测试了之后发现可以用下面的方法解决这个问题:第一步:上传完成后替换掉原来的input框第二步:重新绑...

Android ffmpeg解析和合成gif_ffmpeg 解析gif_TuGeLe的博客-程序员秘密

概述Android项目中使用ffmpeg3.0.9通过命令行调用的方式解析和合成gif。简单学习总结一下。解析gif,由gif得到一堆png/** * 解析gif图片 * @param gifPath gif图片地址 * @param pngDir 解析后图片保存目录 * @return */public static String[] gifToPng(String gifPath,...

推荐文章

热门文章

相关标签