Redis学习笔记-安装篇(Centos7)
1、安装
这里使用源代码安装的方式,如果你希望使用yum或者rpm包安装的方式,可以百度一下,安装方法可谓多如牛毛。
# 下载安装包
# wget http://download.redis.io/releases/redis-3.2.5.tar.gz #编译源程序
# tar xzvf redis-3.2.5.tar.gz
# cd redis-3.2.5/
# make # 将redis命令加入系统命令
# cd src/
# cp redis-server redis-cli /usr/local/bin/
2、启动redis
安装完成,使用默认配置,只需要启动redis服务端即可
# 启动redis服务器
# redis-server
4487:C 02 Dec 09:26:33.008 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
4487:M 02 Dec 09:26:33.009 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 4487
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' 4487:M 02 Dec 09:26:33.012 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4487:M 02 Dec 09:26:33.012 # Server started, Redis version 3.2.5
4487:M 02 Dec 09:26:33.012 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
4487:M 02 Dec 09:26:33.012 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
4487:M 02 Dec 09:26:33.012 * The server is now ready to accept connections on port 6379
redis服务端默认端口使用6379,默认只有本机能够访问。注意,如果只是使用“redis-server”开启redis服务端服务,程序会阻塞住。如果不想阻塞,可以将程序放入后台执行。
3、客户端连接
客户端只要输入命令“redis-cli”即可连接上本机的redis服务端。
# 客户端连接
# redis-cli
127.0.0.1:6379>
4、停止redis实例
最简单的方法就是在服务端使用“Ctrl+C”中断实例。
还可以通过客户端,使用命令“shutdown”停止redis实例。
# redis 客户端已经连接
127.0.0.1:6379> shutdown
not connected>
# 或者直接在命令行中
# redis-cli shutdown #服务器端显示
4520:M 02 Dec 09:39:13.300 # User requested shutdown...
4520:M 02 Dec 09:39:13.300 * Saving the final RDB snapshot before exiting.
4520:M 02 Dec 09:39:13.302 * DB saved on disk
4520:M 02 Dec 09:39:13.302 # Redis is now ready to exit, bye bye...
5、redis配置
在解压的redis源文件中有redis的默认配置文件redis.conf。如果想要更改redis运行的参数,就需要更改这个文件,同时redis运行时需要在第一个参数指定配置文件。
运行时命令为:redis-server redis.conf
# 绑定端口。只接受来自这个IP的请求。如果不设置,将接受所有请求。可以配置多个地址
bind 127.0.0.1
# 保护模式。默认开启。当没有绑定IP并且没有设置密码的时候,保护模式起作用,只接受本地地址的请求。
protected-mode yes
# 监听端口,默认是6379,TCP连接
port 6379
# 高并发环境话,对连接的优化参数。并受linux系统内核的影响,需要同时修改内核参数以互相适应
tcp-backlog 511
# 超时时间,单位为秒,客户端超时时间内没有发出任何命令,关闭该连接。0表示禁用该设置。
timeout 0
# 连接保持确定时间。如果确定断开连接需要双倍的时间。有的内核也会影响这个参数。
# 据说合理值是300秒。这个选项从redis 3.2.1开始设置。
tcp-keepalive 300
# 默认情况下,redis不是后台运行的,如果需要后台运行,需要把该项设置为yes
daemonize no
# 定义是upstart还是systemd接管redis进程
supervised no
# 配置后台运行时,redis会生成pid文件,如果不进行配置,默认放置在/var/run/redis.pid下。运行多个redis服务时,需要指定不同的pid文件和端口
pidfile /var/run/redis_6379.pid
# 配置记录log的等级。分为四个等级,debug\verbose\notice\warining
loglevel notice
# 配置log文件地址,设置为空时,将日志打印在屏幕上。如果设置为空且设置了后台运行,则将日志发送至/dev/null
logfile ""
# 设置数据库个数。使用命令“SELECT <dbid>”切换数据库,默认数据库是DB 0
databases 16
# 设置保存频率,条目格式为:save <seconds> <changes>
# 默认配置的含义是这样的:
#900秒内有一个key发生了变化就进行保存
#300秒内有10个key发生了变化就进行保存
#60秒内有10000个key发生了变化就进行保存
# 只要符合以上条件就进行保存
save 900 1
save 300 10
save 60 10000
# 后台保存至磁盘发生错误时禁止再对redis进行写操作,否则会产生影响。
# 如果后台保存又恢复正常,redis会自动的允许写操作
# 如果有自己的监控,可以关闭这个选项,以达到更好的交互性
stop-writes-on-bgsave-error yes
# 进行备份时,是否进行压缩
rdbcompression yes
# 是否进行检查校验码
rdbchecksum yes
# 备份文件的镜像名
dbfilename dump.rdb
# redis的工作目录。redis会把备份文件也放入到这个工作目录
dir ./
# 设置该数据库为其它数据库的从数据库,默认不启用
# slaveof <masterip> <masterport>
# 如果连接主数据库时需要密码验证,这里指定密码。默认不启用。
# masterauth <master-password>
# 设置从数据库对客户端写入的处理方式。
# 如果设置为“yes”未完全同步的时候也可以提供客户端连接并操作
# 如果设置为“no”时,则只返回错误,除了IINFO和SLAVEOF
slave-serve-stale-data yes
# 从数据库是否是只读属性。
slave-read-only yes
# 是否启用无磁盘复制,即直接通过网络进行复制。这个功能目前还在实验阶段
repl-diskless-sync no
# 启用无磁盘复制时,配置传输开始的延时时间
repl-diskless-sync-delay 5
#在slave和master同步后(发送psync/sync),后续的同步是否设置成TCP_NODELAY。如果设置成yes,则redis会合并小TCP包节省带宽,但会增加延迟。如果设置成no,则redis master会立即发送同步数据,延迟减小,但会增加带宽占用。
repl-disable-tcp-nodelay no
# 从数据库的优先级,数字越小优先级越高。如果主数据库不工作,数字最小的从数据库接替为主数据库。但是数字0代表不会成为主数据库。
slave-priority 100
# 设置密码。客户端连接后进行操作之前需要使用“AUTH <PASSWORD>”进行验证之后再进行操作。
#因为redis速度非常快,所以一个外部用户可以一秒钟进行150K次的密码尝试,这意味着如果你对外发布你的redis服务器,你需要一个强壮的密码防止暴力破解。
# requirepass foobared
#重命名某个比较敏感的命令,使这个命令不能被外部命令利用,如CONFIG。
#但是这个配置不适合普通用户并且可能会引起从数据库传输等的一些问题。
# rename-command CONFIG ""
# 限制同时连接的客户端数量。超过数量将不再接受新的请求并返回错误信息。
# maxclients 10000
# 设置redis能够使用的最大内存。当内存满了的时候,根据maxmemory-policy进行删除key,当无法再删除时,返回错误信息。
# maxmemory <bytes>
# 内存删除规则。默认是noeviction方式
# maxmemory-policy noeviction
# 默认情况下,后台异步的把数据备份到磁盘,但是这个备份十分耗时切不能很频繁,如果发生意外,则会丢失一段时间的数据。如果开启append only模式,redis会把接收到的每一次写操作都追加到appendonly.aof中。
appendonly no
# append only文件的名字,默认为appendonly.aof
appendfilename "appendonly.aof"
# 设置对append only文件进行同步的频率。always表示每次有写操作都进行同步,everysec表示对写操作进行累积,每秒同步一次。
# 设置在rewrite的时候是否对新的写操作进行fsync。no表示进行fsync
no-appendfsync-on-rewrite no
# 当append only文件增长了这个比例(这里是增加了一倍),则后台rewrite自动运行
auto-aof-rewrite-percentage 100
# 进行后面rewrite要求的最小AOF文件大小。这两个选项共同决定了后面rewrite进程是否到达运行的时机
auto-aof-rewrite-min-size 64mb
# 当aof文件被损坏时,redis将返回错误并退出
aof-load-truncated yes
# LUA scripts最大执行时间,单位(毫秒),超出后返回查询错误并写日志
lua-time-limit 5000
# 开启redis集群
# cluster-enabled yes
# 集群节点配置文件名。不主动手动修改,但是需要确保每一个节点配置文件名不同。
# cluster-config-file nodes-6379.conf
# 节点连接超时时间
# cluster-node-timeout 15000
# 主从数据库无法建立联系的时间倍数
cluster-slave-validity-factor 10
# 主数据库需要保留最少从服务器个数。这时其它从服务器能够灾备迁移到其它主服务器,否则不允许进行迁移。
cluster-migration-barrier 1
# 集群是否需要全量覆盖
# cluster-require-full-coverage yes
# 执行超过多少毫秒的会被记录在慢日志上
slowlog-log-slower-than 10000
# 设置保存多少条慢日志
slowlog-max-len 128
# 延时监控
latency-monitor-threshold 0
# 键空间通知,为空关闭功能
notify-keyspace-events ""
# hash对象开始存储的时候使用ziplist进行存储
# 只有达到一定的范围时
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
# 列表编码方式
list-max-ziplist-size -2
# 列表压缩方式,0代表不进行压缩
list-compress-depth 0
# 集合的特殊编码形式
set-max-intset-entries 512
# 有序集合设置
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
# 开启后,每100毫秒有1毫秒对hash表进行重新hash
activerehashing yes
# 客户端缓冲区限制
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
# 设置redis程序命令执行频率
hz 10
# rewrite过程中,每32M数据进行一次文件同步,这样可以减少"aof大文件"写入对磁盘的操作次数
aof-rewrite-incremental-fsync yes
Redis学习笔记-安装篇(Centos7)的更多相关文章
- SystemTap 学习笔记 - 安装篇
https://segmentfault.com/a/1190000000671438 在安装前,需要知道下自己的系统环境,我的环境如下: uname -r 2.6.18-308.el5 Linux ...
- Redis 学习笔记(篇一):字符串和链表
本次学习除了基本内容之外主要思考三个问题:why(为什么).what(原理是什么).which(同类中还有哪些类似的东西,相比有什么区别). 由于我对 java 比较熟悉,并且 java 中也有字符串 ...
- Redis 学习笔记(篇三):跳表
跳表 跳表(skiplist)是一种有序的数据结构,是在有序链表的基础上发展起来的. 在 Redis 中跳表是有序集合(sort set)的底层实现之一. 说到 Redis 中的有序集合,是不是和 J ...
- Redis 学习笔记(篇二):字典
字典 字典又称为符号表.关联数组或映射(map),是一种用于保存键值对(key-value)的数据结构. 那么 C 语言中有没有这样 key-value 型的内置数据结构呢? 答案:没有. 说起键值对 ...
- Redis 学习笔记(篇四):整数集合和压缩列表
整数集合 Redis 中当一个集合(set)中只包含整数,并且元素不多时,底层使用整数集合实现,否则使用字典实现. 那么: 为什么会出现整数集合呢?都使用字典存储不行吗? 整数集合在 Redis 中的 ...
- Redis 学习笔记(篇六):数据库
Redis 是一个使用 C 语言编写的 NoSql 的数据库,本篇就讲解在 Redis 中数据库是如何存储的?以及和数据库有关的一些操作. Redis 中的所有数据库都保存在 redis.h/redi ...
- Redis 学习笔记(篇七):Redis 持久化
因为 Redis 是内存数据库,它将自己的数据储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据也将会丢失,为了解决这个问题,Redis ...
- Redis 学习笔记(篇九):主从复制
Redis 中,可以通过执行 savleof 命令或者设置 slaveof 选项,让一个服务器去复制另一个服务器,我们称被复制的服务器为主服务器,而对主服务器进行复制的服务器则被称为从服务器. Red ...
- Redis 学习笔记(篇十):Sentinel
Sentinel(哨兵)是 Redis 的高可用解决方案:由一个或多个 Sentinel 实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主 ...
随机推荐
- 小论“Boolean参数作为入参”的函数
<Clean Code>一书中对于如何写好函数有着很动人的描写,其中对于函数参数的建议有如下两点: 函数参数的数量应该尽可能少 给一个一元函数传入bool类型的参数很"罪恶&qu ...
- 手把手教你学node.js之使用 superagent 与 cheerio 完成简单爬虫
使用 superagent 与 cheerio 完成简单爬虫 目标 建立一个 lesson 3 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/ 时,输出 CNo ...
- 机器学习实战python3 K近邻(KNN)算法实现
台大机器技法跟基石都看完了,但是没有编程一直,现在打算结合周志华的<机器学习>,撸一遍机器学习实战, 原书是python2 的,但是本人感觉python3更好用一些,所以打算用python ...
- Mail.Ru Cup 2018 Round 1
A. Elevator or Stairs? 签. #include <bits/stdc++.h> using namespace std; ]; int main() { while ...
- Arthur and Brackets
n<605设计出n对夸号 给出n个条件每个条件为[l,r] 表示第i对夸号右夸号离左夸号的距离,然后夸号的右夸号出现的顺序必须按照给的顺序 出现, 那么如果存在就输出否则输出impossilb ...
- 【android】如何实现猿题库题目的排版
最近我们的产品来了个新的模块,类似猿题库一样,给学生做题提高成绩的. 要求如下: 1:支持单选.多选.填空题 2:支持图片文字混排 3:输入框有交互,排版精致美观 4:为了体验优化,不能使用网页实现效 ...
- log parser分析windows日志
首先将windows安全日志导出,步骤如下: 运行eventvwr.msc命令,打开windows日志,如下图,将所有事件另存为: 保存完之后是一个.evtx格式的文件,将使用log parser分析 ...
- P4 PI库安装
repo:Github PI P4Runtime - a control plane framework and tools for the P4 programming language 这个是P4 ...
- 16s workfollw
http://bioconductor.org/packages/devel/bioc/vignettes/metagenomeFeatures/inst/doc/Example_16S_Annota ...
- 【转】Java面试题合集
2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...