一、redis 编译安装、启动关闭、参数调优、设置密码、信息查看

一、编译安装

1、下载编译

yum install -y wget gcc gcc-c++ make tar openssl openssl-devel cmake
cd /usr/local/src
wget 'http://download.redis.io/releases/redis-4.0.9.tar.gz'
tar -zxf redis-4.0.9.tar.gz
cd redis-4.0.9
make #make完后会生成可运行的二进制包,这些包直接拷贝就能够使用

2、redis安装在/usr/local/redis里面

mkdir -pv /usr/local/redis/conf /usr/local/redis/bin
cp src/redis-* /usr/local/redis/bin/  #拷贝常用的二进制文件
rm /usr/local/redis/bin/*.c  /usr/local/redis/bin/*.o   #删除一下不需要的二进制包
cp redis.conf /usr/local/redis/conf/  #拷贝配置文件

3、验证和软链接的建立

/usr/local/redis/bin/redis-server --version
/usr/local/redis/bin/redis-cli --version
ln -s /usr/local/redis/bin/redis-cli /usr/local/bin/ 
ln -s /usr/local/redis/bin/redis-server /usr/local/bin/
ln -s /usr/local/redis/bin/redis-sentinel /usr/local/bin/
redis-cli --version

在这里插入图片描述

在这里插入图片描述

二、redis启动和关闭

1、简化redis配置

cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis.conf.bak
cat /usr/local/redis/conf/redis.conf |egrep -v '^#|^$'
mkdir -pv /data/redis/ #创建redis的数据目录

2、 更改redis配置 vim /usr/local/redis/conf/redis.conf
更详细的解释可以看菜鸟教程Redis 配置

bind 0.0.0.0  #监听地址更改,0.0.0.0代表监控所有网卡
port 6379      #监听端口更改,6379为默认
daemonize yes    #是否后台启动,	Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no )
pidfile "/data/redis/redis.pid"   #pid存放目录 当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定,这里改为/data/redis/redis.pid
logfile "/data/redis/redis.log"  #日志存放目录 	日志记录方式,默认为标准输出stdout,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null
dir /data/redis/     #工作目录 指定本地数据库存放目录

3、redis服务器启动和关闭

  • 启动
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf #启动redis服务器

在这里插入图片描述

  • 关闭
    先使用redis-cli登陆redis,再执行SHUTDOWN命令关闭redis,也可以kill进程
ps -ef |grep redis
redis-cli
SHUTDOWN  #关闭redis服务器

在这里插入图片描述

三、系统参数调优

虽然能启动,但查看日志 /data/redis/redis.log 会有一些告警信息,所以需要设置一下系统参数
在这里插入图片描述

1、Increased maximum number of open files to 10032 (it was originally set to 1024)
/etc/security/limits.conf 增加 设置最大文件描述符

* - nofile 10240

ulimit -n 查看一下
在这里插入图片描述

2、The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128
设置监听队列的数量,somaxconn是指服务端所能accept即处理数据的最大客户端数量,即完成连接上限。/etc/sysctl.conf 增加

net.core.somaxconn = 10240

然后在终端中执行

sysctl -p
sysctl -a |grep soma

在这里插入图片描述

3、To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf
/etc/sysctl.conf 增加

vm.overcommit_memory = 1

解释

overcommit_memory是一个内核对内存分配的一种策略
overcommit_memory=0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
overcommit_memory=1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
overcommit_memory=2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

然后在终端中执行

sysctl -p
sysctl -a |grep overcommint

在这里插入图片描述

4、hugepage shutdown
关闭大内存页,HugePages是linux内核的一个特性,使用hugepage可以用更大的内存页来取代传统的4K页面,这里redis建议关掉这个功能。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

加到rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

5、删除日志再启动一下redis

rm -rf /data/redis/redis.log
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf

然后查看日志,启动都正常,没有告警信息了
在这里插入图片描述

四、设置密码

在配置文件中增加 vim /usr/local/redis/conf/redis.conf

requirepass 123456

然后重启redis,再进入,需要使用密码才能操作,也可以在进入时就指定密码redis-cli -a 123456

[root@localhost ~] redis-cli 
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
 1) "src"
 2) "key4"
 3) "key3"
 4) "int_key"

五、查看信息

redis提供一个info命令查看redis服务器的信息,类似linux提供一个top命令查看系统的信息。

1、使用redis-cli提供的info命令查看

[root@localhost redis]# redis-cli 
127.0.0.1:6379> info
# Server
redis_version:4.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f42046fbdf7d74dc
redis_mode:standalone
os:Linux 3.10.0-862.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:2657
run_id:ff964f3d2a43fa0c0e4d544967abb5c4fd591382
tcp_port:6379
uptime_in_seconds:12090
uptime_in_days:0
hz:10
lru_clock:7523791
executable:/usr/local/redis/bin/redis-server
config_file:/usr/local/redis/conf/redis.conf

# Clients
connected_clients:3
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:893496
used_memory_human:872.55K
used_memory_rss:7798784
used_memory_rss_human:7.44M
used_memory_peak:893944
used_memory_peak_human:872.99K
used_memory_peak_perc:99.95%
used_memory_overhead:871170
used_memory_startup:786616
used_memory_dataset:22326
used_memory_dataset_perc:20.89%
total_system_memory:8184160256
total_system_memory_human:7.62G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:8.73
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1601347221
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
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
aof_last_write_status:ok
aof_last_cow_size:0

# Stats
total_connections_received:10
total_commands_processed:21
instantaneous_ops_per_sec:0
total_net_input_bytes:620
total_net_output_bytes:102495
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
evicted_keys:0
keyspace_hits:1
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0

# Replication
role:master
connected_slaves:0
master_replid:08a0bf83112b4468585b4d4c156b6c5ecbac6efd
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:8.94
used_cpu_user:3.31
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=23,expires=0,avg_ttl=0
Server 表示redis服务器的信息,里面包含有启动时间等
Clients 表示redis的客户端连接信息。
Memory 表示redis的内存使用信息。
mem_fragmentation_ratio=used_memory_rss_human/used_memory_human #redis发生增加删除的动作,会引起内存碎片化
mem_allocator:jemalloc-4.0.3 #内存分配使用的库,越好的库内存碎片化率越低。低版本的建议升级
Persistence 表示redis的持久化信息,redis虽然主要用来做缓存用,但也提供数据持久化功能,也就是把数据存盘。
Stats 表示redis的一些状态信息,常用来监控
total_connections_received #一共接收了多少连接
total_commands_processed #一共运行了多个命令
total_net_input_bytes  #总流入流量
total_net_output_bytes  #总流出流量
Replication 表示redis主从状态信息
CPU  表示redis占用的cpu情况
Cluster  表示redis的集群信息
Keyspace 表示redis key的分配情况

2、单独查看某块信息

redis-cli info Keyspace #只查看key
redis-cli info clients #只查看cpu信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值