文章目录
redis基础操作命令
安装环境包
yum install gcc gcc-c++ make -y
cd /opt
tar zxvf redis-5.0.7.tar.gz
cd redis-5.0.7/
make
make PREFIX=/usr/local/redis install
ln -s /usr/local/redis/bin/* /usr/local/bin
cd /opt/redis-5.0.7/utils
启动服务
./install_server.sh
一直回车
Is this ok? ///回车结束///
查看接口
netstat -lnupt | grep redis
启动关闭等相关命令
./etc/init.d/redis_6379 stop
./etc/init.d/redis_6379 start
./etc/init.d/redis_6379 status
./etc/init.d/redis_6379 restart
添加远程访问数据库配置
vim /etc/redis/6379.conf
bind 127.0.0.1 192.168.209.136
本地连接数据库
redis-cli
远程连接数据库
redis-cli -h 192.168.209.136 -p 6379
查看命令
help @list
存入数据
set test hewei
OK
获取数据
get test
"hewei"
向本地服务器的6379端口发送100个并发连接与100000个请求测试性能
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
测试存取100字节的数据包性能
redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100
hash结构
127.0.0.1:6379> hset table name tom age 20 score 99
(integer) 3
127.0.0.1:6379> hset table2 name jerry age 25 score 80
(integer) 3
127.0.0.1:6379> hget table age
"20"
127.0.0.1:6379> hget table name
"tom"
127.0.0.1:6379> hgetall table2
1) "name"
2) "jerry"
3) "age"
4) "25"
5) "score"
6) "80"
RDB持久化
vim /etc/redis/6379.conf
save 900 1
save 300 10
save 60 10000
添加如下
dbfilename dump.rdb
dir /var/lib/redis/6379
rdbcompression yes
AOF持久化
vim /etc/redis/6379.conf
修改如下
appendonly yes
AOF重写
vim /etc/redis/6379.conf
目前,即使在不同的线程中执行fsync也会阻塞我们的同步写入调用。
为了缓解这个问题,可以使用以下选项这将阻止在主进程中调用fsync(),而BGSAVE或BGREWRITEAOF正在进行。
这意味着当另一个孩子在储蓄时,Redis的耐久性与“appendfsync none”相同。实际上,这意味着在最坏的情况下,可能会丢失最多30秒的日志(使用默认Linux设置)。
如果您有延迟问题,请将此选项设置为“是”。否则就把它当作“不”,从耐用性的角度来看,“不”是最安全的选择。
no-appendfsync-on-rewrite no
自动重写仅附加文件。
Redis能够自动重写日志文件隐式调用,当AOF日志大小以指定的百分比增长时,BGREWRITEAOF。
它是这样工作的:Redis在最新重写(如果重新启动后没有重写,则
使用启动时的AOF)。
将此基本大小与当前大小进行比较。如果大于指定的百分比,则会触发重写。
或者您需要指定要重写的AOF文件的最小大小,这个它有助于避免重写AOF文件,即使百分比增加但它仍然很小。
指定零的百分比以禁用自动AOF重写功能。
auto-aof-rewrite-percentage 100
查看Redis内存使用
info memory
内存碎片率
操作系统分配的内存值used_memory_rss除以Redis使用的内存值used_memory计算得出
内存碎片是由操作系统低效的分配/回收物理内存导致的
不连续的物理内存分配
跟踪内存碎片率对理解Redis实例的资源性能是非常重要的
内存碎片率稍大于1是合理的,这个值表示内存碎片率比较低
内存碎片率超过1.5,说明Redis小号了实际需要物理内存的150%,其中50%是内存碎片率
内存碎片率低于1的,说明Redis内存分配超出了物理内存,操作系统正在进行内存交换
内存使用率
redis示例的内存使用率超过可用最大内存,操作系统将开始进行内存与swap空间交换
避免内存交换
针对缓存数据大小选择
尽可能的使用Hash数据结构
设置key的过期时间
回收key
保证合理分配redis有限的内存资源
当达到设置额最大阈值时,需选择一种key的回收策略
①默认情况下回收策略是禁止删除
②redis.com配置文件中修改maxmemory-policy属性值
③volatile-lry:使用LRU算法从已设置过期时间的数据集合中淘汰数据
④volatile-ttl:从已设置过期时间的数据集合中挑选即将过期的数据淘汰
⑤volatite-random:从已设置过期时间的数据集合中随机挑选数据淘汰
⑥allkeys-lru:使用LRU算法从所有数据集合中淘汰数据
⑦allkeys-random:从数据集合中任意选择数据淘汰
与swap空间交换
2. 避免内存交换
3. 针对缓存数据大小选择
4. 尽可能的使用Hash数据结构
5. 设置key的过期时间