设为首页 收藏本站
查看: 1298|回复: 0

[经验分享] Redis学习手册一:安装配置

[复制链接]

尚未签到

发表于 2018-11-7 10:34:58 | 显示全部楼层 |阅读模式
  Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富,有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能,所以Redis也可以被看成是一个数据结构服务器。
  Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(半持久化模式);也可以把每一次数据变化都写入到一个append only file(aof)里面(全持久化模式)。
  环境:Redhat 5.3 64bit
  一、Redis安装
  ①、下载Redis
  下载Redis可以直接从其官网http://redis.io/download下载最新版,如下:
# wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz  ②、安装tclsh
  Redis在make test有使用到tclsh对Redis进行测试,所有需要想将tclsh安装好,如果没有安装的话,在make test过程中会出现如下错误:
# make test  
cd src && make test
  
make[1]: Entering directory `/usr/local/webserver/redis/src'
  
You need tcl 8.5 or newer in order to run the Redis test
  
make[1]: *** [test] Error 1
  
make[1]: Leaving directory `/usr/local/webserver/redis/src'
  
make: *** [test] Error 2
  tclsh下载可以直接从官网http://www.tcl.tk/software/tcltk/download.html下载其最新版
# wget http://hivelocity.dl.sourceforge.net/project/tcl/Tcl/8.5.14/tcl8.5.14-src.tar.gz  
# tar xzvf tcl8.5.14-src.tar.gz
  
# cd tcl8.5.14-src/unix     #windows进入tcl8.5.14-src/win
  
# ./configure --prefix=/app/soft/tcl8.5.11 --enable-64bit  #enable-64bit对64系统生效
  
# make && make installan
  安装完成之后需要将tclsh添加到PATH中,并使其生效
# vim /etc/profile  
···
  
PATH=/app/soft/tcl8.5.11/bin:$PATH
  
export PATH
  
···
  
# source /etc/profile
  这样tclsh就已经安装完成了。
  ③、安装Redis
# tar xzvf redis-2.6.14.tar.gz  
# cd redis-2.6.14
  
# make
  
# make test   #检查Redis是否已经make成功,这个步骤可以省略,不过建议还是使用
  
# make PREFIX=/app/soft/redis install  #默认安装路径:/usr/local
  
# mkdir -p /app/soft/redis/{etc,share,data}
  
# cp redis.conf /app/soft/redis/etc/   #复制配置文件到redis配置目录
  以上整个Redis已经安装完成了。
  二、配置Redis
  ①、如下为Redis配置信息:
#  cat redis.conf|grep -v ^#  
daemonize yes            #开启守护进程
  
pidfile /var/run/redis.pid    #设置PID文件
  
port 6579                #设置Redis端口
  
timeout 300
  
tcp-keepalive 0
  
loglevel verbose        #设置日志级别
  
syslog-enabled yes      #开启syslog
  
syslog-ident redis      #设置Redis在syslog里面的标识符
  
syslog-facility local6  #设置Redis在syslog使用的设备
  
databases 5
  
save 900 1              #Redis硬盘数据保存设置
  
save 300 10
  
save 60 10000
  
stop-writes-on-bgsave-error yes
  
rdbcompression yes
  
rdbchecksum yes
  
dbfilename dump.rdb    #Redis数据保存文件
  
dir /app/soft/redis2.6.14/data    #Redis数据保存目录
  
slaveof 183.232.10.64  6579       #开启主从同步,设置Master的IP及端口
  
masterauth Dmx#xYkJ0Z8            #设置主从同步密码
  
slave-serve-stale-data yes
  
slave-read-only yes
  
repl-disable-tcp-nodelay no
  
slave-priority 100
  
requirepass Dmx#xYkJ0Z8            #设置Redis认证密码
  
maxclients 10000                   #设置客户端连接数
  
maxmemory 512M                     #设置内容大小
  
appendonly no                      #设置是否开启AOF模式
  
appendfsync everysec
  
no-appendfsync-on-rewrite no
  
auto-aof-rewrite-percentage 100
  
auto-aof-rewrite-min-size 64mb
  
lua-time-limit 5000
  
slowlog-log-slower-than 10000
  
slowlog-max-len 128
  
hash-max-ziplist-entries 512
  
hash-max-ziplist-value 64
  
list-max-ziplist-entries 512
  
list-max-ziplist-value 64
  
set-max-intset-entries 512
  
zset-max-ziplist-entries 128
  
zset-max-ziplist-value 64
  
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
  
hz 10
  
aof-rewrite-incremental-fsync yes
  ②、日志设置
  通过Redis日志的配置可以知道,这次设置Redis日志是通过syslog来统一管理的,然后再通过logrotate来进行日志轮循,具体配置如下:
##syslog配置  
#  cat /etc/syslog.conf
  
···
  
# Log anything (except mail) of level info or higher.
  
# Don't log private authentication messages!
  
*.info;mail.none;authpriv.none;cron.none;redis.none    /var/log/messages
  
#redis.none去除Redis的日志输出到message
  
···
  
# Save redis messages also to redis.log
  
local6.*                                             /var/log/redis.log
  
#设置Redis日志输入到/var/log/redis.log文件
  
···
  
##logrotate配置
  
# cat /etc/logrotate.d/redis
  
/var/log/redis.log {
  
missingok
  
weekly
  
notifempty
  
rotate 15
  
size 200M
  
sharedscripts
  
postrotate
  
/usr/bin/killall -HUP syslogd
  
endscript
  
}
  logrotate配置文档的意思为:每周检查一次Redis日志文件,大小超过200M就轮循一次,保存15个轮循日志文件。
  ③、内核设置
  因为Redis需要使用到内存,所有最好配置一个内核参数,否则有可能会报警,具体如下:
# cat /etc/sysctl.conf  
···
  
vm.overcommit_memory = 1  #指定内核针对内存分配的策略,其值可以是0,1,2
  
···
  
# 0  → 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
  
# 1  → 表示内核允许分配所有的物理内存,而不管当前的内存状态如何
  
# 2  → 表示内核允许分配超过所有物理内存和交换空间总和的内存
  
#  sysctl -p
  三、Redis启动与关闭
#Redis启动  
/app/soft/redis/bin/redis-server /app/soft/redis/etc/redis.conf
  
#Redis关闭
  
/app/soft/redis/bin/redis-cli shutdown  或者kill pid
  五、Redis服务验证
  /app/soft/redis/bin/redis-cli 登录,然后再通过ping、info、命令查看redis情况,具体示例如下:
# ./redis-cli -h localhost -p 6579 -a password  
redis localhost:6579> info
  
# Server
  
redis_version:2.6.14
  
redis_git_sha1:00000000
  
redis_git_dirty:0
  
redis_mode:standalone
  
os:Linux 2.6.18-128.el5 x86_64
  
arch_bits:64
  
multiplexing_api:epoll
  
gcc_version:4.1.2
  
process_id:18661
  
run_id:45efd447d2a29af7ffdd6f430139232de2d2d596
  
tcp_port:6579
  
uptime_in_seconds:532309
  
uptime_in_days:6
  
hz:10
  
lru_clock:1323989
  
# Clients
  
connected_clients:7
  
client_longest_output_list:0
  
client_biggest_input_buf:0
  
blocked_clients:0
  
# Memory
  
used_memory:131584952
  
used_memory_human:125.49M
  
used_memory_rss:135761920
  
used_memory_peak:131748656
  
used_memory_peak_human:125.65M
  
used_memory_lua:31744
  
mem_fragmentation_ratio:1.03
  
mem_allocator:jemalloc-3.2.0
  
# Persistence
  
loading:0
  
rdb_changes_since_last_save:478
  
rdb_bgsave_in_progress:0
  
rdb_last_save_time:1376388583
  
rdb_last_bgsave_status:ok
  
rdb_last_bgsave_time_sec:0
  
rdb_current_bgsave_time_sec:-1
  
aof_enabled:0
  
aof_rewrite_in_progress:0
  
aof_rewrite_scheduled:0
  
aof_last_rewrite_time_sec:-1
  
aof_current_rewrite_time_sec:-1
  
aof_last_bgrewrite_status:ok
  
# Stats
  
total_connections_received:373
  
total_commands_processed:15615130
  
instantaneous_ops_per_sec:6
  
rejected_connections:0
  
expired_keys:0
  
evicted_keys:0
  
keyspace_hits:612642
  
keyspace_misses:3976261
  
pubsub_channels:0
  
pubsub_patterns:0
  
latest_fork_usec:6940
  
# Replication
  
role:slave
  
master_host:10.232.10.64
  
master_port:6579
  
master_link_status:up
  
master_last_io_seconds_ago:0
  
master_sync_in_progress:0
  
slave_priority:100
  
slave_read_only:1
  
connected_slaves:0
  
# CPU
  
used_cpu_sys:480.20
  
used_cpu_user:280.40
  
used_cpu_sys_children:99.57
  
used_cpu_user_children:946.66
  
# Keyspace
  
db0:keys=551,expires=0
  
redis localhost:6579>
  通过上面4个步骤基本上就将Redis搭建起来了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-631866-1-1.html 上篇帖子: kibana+logstash+elasticsearch+redis 续(1) 下篇帖子: 用python和redis开发高性能监控平台及框架升级过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表