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 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主 ...
随机推荐
- C++中的RAII介绍 资源管理
摘要 RAII技术被认为是C++中管理资源的最佳方法,进一步引申,使用RAII技术也可以实现安全.简洁的状态管理,编写出优雅的异常安全的代码. 资源管理 RAII是C++的发明者Bjarne Stro ...
- VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
鸡啄米在上一讲中介绍了MFC的消息映射机制,属于原理方面的知识.对于VC++编程入门学习者来说可能有些抽象,鸡啄米会把消息映射的知识渗透到后面的教程中.本节开始为大家讲解偏应用的知识-创建对话框. 对 ...
- Docker 版本升级
当前系统版本:Centos 7.4 x64 删除老版本docker sudo yum remove docker docker-common docker-selinux docker-engine ...
- 20145204 《Java程序设计》第2周学习总结
20145204 <Java程序设计>第2周学习总结 教材学习内容总结 在第三章主要学习了Java语言中的类型及其变量主要类型为:整数(1字节的byte,2字节的short,4字节的int ...
- JQuery+CSS3实现Ajax加载时loading效果
之前通过Ajax请求加载数据的时候,在数据还没有呈现出来前,为了更好的用户体验,总会弄个loading告诉用户其实内容正在加载,而不是网站崩了.但是貌似之前使用gif图片的情况比较多,可能是为了兼容各 ...
- POJ 3169 Layout(差分约束+最短路)题解
题意:有一串数字1~n,按顺序排序,给两种要求,一是给定u,v保证pos[v] - pos[u] <= w:二是给定u,v保证pos[v] - pos[u] >= w.求pos[n] - ...
- 第7章 调试和错误处理 7.1.1 VS中的调试
VS有一个输出窗口,调用方法是 需要注意的是,这个窗口有两个模式,使用其中的下拉列表就可以选择这些模式.可以在Build和Debug模式之间切换.Build和Debug模式分别显示编译和运行期间的信息 ...
- MyBatis使用小案例
首先回顾一下MyBatis封装简化Dao层连接数据库操作的顺序. 首先MyBatis是一个引入的jar包,还有一些依赖包,可能用不到的jar包,一并引入就好了,再多引入一个Juntil.jar测试包( ...
- java分布式系统开关功能设计(服务升降级)
问题一:在单个java系统中如何实现开关功能? 其实对于开关来说,对应Java中的类型,很好映射,就是一个boolean值,在需要做开关操作的地方,调用这个属性,判断状态,然后走相应的 ...
- 2-14-2 MySQL数据类型
MySQL数据类型: 对数据进行分类,针对不同分类进行不同的处理. 1. 使系统能够根据数据类型来操作数据. 2. 预防数据运算时出错. 3. 更有效的利用空间. 数据分类,可以使用最少的存储,来存放 ...