热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux冲去redis,Linux安装单机版Redis的完整步骤

前言redis是当前比较热门的nosql系统之一,它是一个key-value存储系统。和memcached类似,但很大程度补偿了memcached的不足

前言

redis是当前比较热门的nosql系统之一,它是一个key-value存储系统。和memcached类似,但很大程度补偿了 memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持 push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

最近在迁移测试环境,有用到redis,记录下linux安装单机版redis的过程,下面话不多说了,来一起看看详细的介绍吧

验证gcc-c++环境

redis使用c语言开发,所以要运行在linux上,需要gcc-c++的环境。

检查是否有gcc-c++环境:

rpm -qa | grep gcc-c++

如果没有进行安装:

yum install gcc-c++

yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl

安装redis

首先下载安装包:

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

然后解压至指定目录:

tar -zxvf redis-4.0.10.tar.gz -c /usr/local/

进入到解压后的目录之后进行编译:

cd /usr/local/redis-4.0.10

make

编译成功后进行安装,设置安装路径:

make install prefix=/usr/local/redis

安装完成后就可以到对应的目录下启动:

cd /usr/local/redis/bin

./redis-server

顺利的话,redis已经正常启动,但是在终端会显示启动内容,如果不希望显示的话,可以修改下配置。

首先去copy安装包中的redis.conf

cp /root/redis-4.0.10/redis.conf /usr/local/redis

然后打开配置文件,将文件中的daemonize设置为yes。

vi redis.conf之后进行编辑,如下截图:

099804409fb4ad13fb1412876aae6ab2.png

然后带着配置项启动即可:

./redis-server redis.conf

验证与操作

redis安装完之后,我们校验下是否正常。

首先我们启动测试端:./redis-cli,然后进行一些简单的操作,如下截图:

e18de44412b74ee353eb74829233103f.png

配置说明

##基本配置

daemonize no //是否以后台进程启动

databases 16 //创建database的数量(默认选中的是database 0)

save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。

save 300 10 #必须是300秒之后至少10个关键字发生变化。

save 60 10000 #必须是60秒之后至少10000个关键字发生变化。

stop-writes-on-bgsave-error yes #后台存储错误停止写。

rdbcompression yes #使用lzf压缩rdb文件。

rdbchecksum yes #存储和加载rdb文件时校验。

dbfilename dump.rdb #设置rdb文件名。

dir ./ #设置工作目录,rdb文件会写入该目录。

//主从配置

slaveof //设为某台机器的从服务器

masterauth //连接主服务器的密码

slave-serve-stale-data yes # 当主从断开或正在复制中,从服务器是否应答

slave-read-only yes #从服务器只读

repl-ping-slave-period 10 #从ping主的时间间隔,秒为单位

repl-timeout 60 #主从超时时间(超时认为断线了),要比period大

slave-priority 100 #如果master不能再正常工作,那么会在多个slave中,选择优先值最小的一个slave提升为master,优先值为0表示不能提升为master。

repl-disable-tcp-nodelay no #主端是否合并数据,大块发送给slave

slave-priority 100 //从服务器的优先级,当主服挂了,会自动挑slave priority最小的为主服

#安全

requirepass foobared # 需要密码

rename-command config b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共环境,可以重命名部分敏感命令 如config

#限制

maxclients 10000 #最大连接数

maxmemory #最大使用内存

maxmemory-policy volatile-lru #内存到极限后的处理

volatile-lru -> #lru算法删除过期key

allkeys-lru -> #lru算法删除key(不区分过不过期)

volatile-random -> #随机删除过期key

allkeys-random -> #随机删除key(不区分过不过期)

volatile-ttl -> #删除快过期的key

noeviction -> #不删除,返回错误信息

#解释 lru ttl都是近似算法,可以选n个,再比较最适宜t踢出的数据

maxmemory-samples 3

#日志模式

appendonly no #是否仅要日志

appendfsync no # 系统缓冲,统一写,速度快

appendfsync always # 系统不缓冲,直接写,慢,丢失数据少

appendfsync everysec #折衷,每秒写1次

no-appendfsync-on-rewrite no #为yes,则其他线程的数据放内存里,合并写入(速度快,容易丢失的多)

auto-aof-rewrite-percentage 100 #当前aof文件是上次重写是大n%时重写

auto-aof-rewrite-min-size 64mb #aof重写至少要达到的大小

#慢查询

slowlog-log-slower-than 10000 #记录响应时间大于10000微秒的慢查询

slowlog-max-len 128 # 最多记录128条

#服务端命令

time #返回时间戳+微秒

dbsize #返回key的数量

bgrewriteaof #重写aof

bgsave #后台开启子进程dump数据

save #阻塞进程dump数据

slaveof host port #做host port的从服务器(数据清空,复制新主内容)

slaveof no one #变成主服务器(原数据不丢失,一般用于主服失败后)

flushdb #清空当前数据库的所有数据

flushall #清空所有数据库的所有数据(误用了怎么办?)

shutdown [save/nosave] #关闭服务器,保存数据,修改aof(如果设置)

slowlog get #获取慢查询日志

slowlog len #获取慢查询日志条数

slowlog reset #清空慢查询

config get #选项(支持*通配)

config set #选项 值

config rewrite #把值写到配置文件

config restart #更新info命令的信息

debug object key #调试选项,看一个key的情况

debug segfault #模拟段错误,让服务器崩溃

object key (refcount|encoding|idletime)

monitor #打开控制台,观察命令(调试用)

client list #列出所有连接

client kill #杀死某个连接 client kill 127.0.0.1:43501

client getname #获取连接的名称 默认nil

client setname "名称" #设置连接名称,便于调试

#连接命令

auth 密码 #密码登陆(如果有密码)

ping #测试服务器是否可用

echo "some content" #测试服务器是否正常交互

select 0/1/2... #选择数据库

quit #退出连接

总结

搭建redis还是比较简单的,有兴趣的小伙伴可以亲自试验下,下次再尝试下搭个redis集群。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对萬仟网的支持。



推荐阅读
  • 开发笔记:Memcached高性能内存对象缓存系统
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Memcached高性能内存对象缓存系统相关的知识,希望对你有一定的参考价值。一、Memcached概述 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • hackingTeam是如何被黑的
    hackingTeam是如何被黑的 ... [详细]
author-avatar
WXLLXWOO
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有