- A+
系统环境:Centos 7
软件版本:redis 3.2.8
1.安装所需依赖包
yum install make gcc gcc-c++ wget libtool tcl vim numactl -y
2.安装redis
wget http://download.redis.io/releases/redis-3.2.13.tar.gz && tar zxvf redis-3.2.13.tar.gz && cd redis-3.2.13 && make && cd src && make PREFIX=/opt/redis install
3.修改配置文件
cd ..; mv redis.conf /opt/redis; sed -i 's/daemonize no/daemonize yes/' /opt/redis/redis.conf;
4.简单启动脚本
tee -a /opt/redis.sh <<-'EOF' #!/bin/bash #redis start /opt/redis/bin/redis-server /opt/redis/redis.conf EOF
5.测试
/opt/redis/bin/redis-cli 127.0.0.1:6379> set a long OK 127.0.0.1:6379> get a "long"
redis常用命令详解
redis-benchmark:redis性能测试工具,测试redis在当前系统下的读写性能 -h 检测主机ip地址 -p 检测主机端口 -s<socket>服务器套接字 -c 并发连接数 -n 请求数 -d 测试使用的数据集的大小/字节(默认3字节) -k 1:表示保持连接(默认值) 0:重新连接 -r SET/GET/INCR方法使用随机数插入数值,设置10则插入值为rand:000000000000 - rand:000000000009 -P 默认为1(无管道),当网络延迟过长时,使用管道方式通信(请求和响应打包发送接收) -q 简约信息模式,只显示查询和秒值等基本信息 --csv 以csv格式输出信息 -l 无线循环插入测试数据,ctrl+c停止 -t <tests> 只运行<tests>测试逗号分隔的列表命令,如 -t ping , set , get -I 空闲模式,立即打开50个空闲连接和等待
redis-benchmark -t set -n 1000000 -r 100000000 redis-benchmark -t ping,set,get -n 100000 –csv redis-benchmark -r 10000 -n 10000 lpush mylist ele:rand:000000000000 redis-benchmark -h localhost -p 6379 -c 100 -n 100000
100个并发连接,100000个请求,检测host为localhost端口为6379的redis服务器性能 redis-server 启动程序 redis-server [/path/to/redis.conf] 启动并加载默认配置文件 redis-server - (read config from stdin) 使用标准输入读取配置为启动参数 redis-server -v or --version 查看版本号 redis-server -h or --help 帮助 redis-server --test-memory 256 检测256M内存 redis-cli:连接用的客户端 -h 检测主机ip -p 检测主机端口 -s<socket> 服务器套接字 -a 连接到Master服务器时使用的密码 -r 执行指定的N次命令 -i 执行命令后等待N秒,如-i 0.1 info(执行后等0.1秒) -n 指定连接N号ID数据库,如-n 3 (连接3号数据库) -x 从控制台输入的信息中读取最后一个参数 -d 定义多个定界符为默认输出格式(默认:\n) --raw 使用原数据格式返回输出内容 --latency 进入一个不断延时采样的特殊模式 --slave 模拟一个从服务器到主服务器的命令显示反馈 --pipe 使用管道协议模式 --bigkeys 监听显示数据最大的key值,--bigkeys -i 0.1 --hlep 帮助 --version 版本号 redis-cli -r 3 info 重复执行info命令三次 cat testStr.txt | redis-cli -x set testStr读取testStr.txt文件所有内容设置为testStr的值
查询系统信息 [root@bogon bin]# /opt/redis/bin/redis-cli info # Server redis_version:3.2.8 redis版本号 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:e5bf2a1021530951 redis_mode:standalone os:Linux 3.10.0-327.el7.x86_64 x86_64 arch_bits:64 64位系统 multiplexing_api:epoll gcc_version:4.8.5 gcc版本号 process_id:1519 当前服务器进程id run_id:a51452aba3c7df2ed66807e161b6b4c9b82fe46e tcp_port:6379 端口号 uptime_in_seconds:3363 正常工作时间(秒) uptime_in_days:0 正常工作天数 hz:10 lru_clock:1137679 executable:/usr/local/redis/bin/redis-server config_file:/usr/local/redis/etc/redis.conf # Clients connected_clients:1 客户端连接数 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 锁定的客户端 # Memory used_memory:822600 used_memory_human:803.32K 占用内存 used_memory_rss:7688192 used_memory_rss_human:7.33M used_memory_peak:822600 used_memory_peak_human:803.32K total_system_memory:1929732096 total_system_memory_human:1.80G used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:0 maxmemory_human:0B maxmemory_policy:noeviction mem_fragmentation_ratio:9.35 mem_allocator:jemalloc-4.0.3 # Persistence loading:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 rdb_last_save_time:1494307441 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 aof_last_write_status:ok # Stats total_connections_received:2 total_commands_processed:3 instantaneous_ops_per_sec:0 total_net_input_bytes:81 total_net_output_bytes:6097242 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 evicted_keys:0 keyspace_hits:1 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:10123 migrate_cached_sockets:0 # Replication role:master connected_slaves:0 从服务器连接数 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 # CPU used_cpu_sys:5.24 used_cpu_user:2.18 used_cpu_sys_children:0.02 used_cpu_user_children:0.00 # Cluster cluster_enabled:0 # Keyspace db0:keys=1,expires=0,avg_ttl=0 redis-check-aof:检查aof日志的工具 redis-check-rdb:检查rdb日志的工具 redis.conf 配置文件说明 daemonize 如需后台运行改为yes pdifile 把pid文件放在/var/run/redis.pid,可以配置到其他地址 port 监听端口,默认为6379 timeout 连接时的超时时间,单位为秒 loglevel 四个级别:debug、verbose、notice、warning Debug 记录很多信息,用于开发和测试; Varbose 有用的信息,不像debug会记录那么多; Notice 普通的verbose,常用于生产环境; Warning 只有非常重要或者严重的信息会记录到日志; 默认是notice级别。 logfile 日志路径,默认使用标准输出,即打印在命令行终端的端口上 database 可用数据库数,默认值为16,默认使用的数据库是0 save 保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。 在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 比如save 300 10 表示:300秒内至少有300个key被改变时,触发保存 rdbcompression 在进行镜像备份时,是否进行压缩 dbfilename 镜像备份文件的文件名 dir 镜像备份的文件放置的路径 slaveof 设置该数据库为其他数据库的从数据库 masterauth 当主数据库连接需要密码验证时,在这里设定 maxclients 限制同时连接的客户端数量 appendonly 开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率 appendfsync 设置aof的同步频率,有三种选择always、everysec、no, always每次写都强制调用fsync,everysec每秒启用一次fsync, no不调用fsync等待系统自己同步。默认是everysec表示每秒同步一次。 vm_enabled 是否开启虚拟内存支持 vm_swap_file 虚拟内存的交换文件的路径 vm_max_momery 开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0