Redis自学第一天

  

 

 

 

5种数据类型:string、hash、list、set、sorted_set

原理分别对应String、HashMap、Linkedlist、HashSet、TreeSet

String常用指令

strlen 长度

incr 自增+1

incyby 指定增长数量

incybyfloat 

decy

decyby 

setex 秒级单位 设置value时效 

psetex  毫秒级单位 设置value时效

附上文章自学内容的视频链接https://www.bilibili.com/video/BV1CJ411m7Gc?p=47

Linux下安装redis出现的问题及解决方法

安装redis出现cc adlist.o /bin/sh:1:cc:not found的解决方法

安装redis时 提示执行make命令时提示 CC adlist.o /bin/sh: cc: 未找到命令

问题原因:这是由于系统没有安装gcc环境,因此在进行编译时才会出现上面提示,当安装好gcc后再进行编译时,上面错误提示将消失。

解决方法:

安装gcc

[ckl@localhost ~]$ yum -y install gcc automake autoconf libtool make

安装c编译器并编译

[root@bogon redis-3.2.0]# make

cd src && make all

make[1]: 进入目录“/usr/local/redis-3.2.0/src”

CC adlist.o

/bin/sh: cc: 未找到命令

make[1]: *** [adlist.o] 错误 127

make[1]: 离开目录“/usr/local/redis-3.2.0/src”

make: *** [all] 错误 2

安装c编译器并编译

[root@bogon redis-3.2.0]# yum install gcc-c++ 

[root@bogon redis-3.2.0]# make

cd src && make all

make[1]: 进入目录“/usr/local/redis-3.2.0/src”

CC adlist.o

In file included from adlist.c:34:0:

zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

#include <jemalloc/jemalloc.h>                              ^

编译中断。

make[1]: *** [adlist.o] 错误 1

make[1]: 离开目录“/usr/local/redis-3.2.0/src”

make: *** [all] 错误 2

解决“jemalloc/jemalloc.h:没有那个文件或目录“问题,在进行编译(因为上次编译失败,有残留的文件)

[root@bogon redis-3.2.0]# make distclean

[root@bogon redis-3.2.0]# make && make install

 

如何使用后台启动redis

配置redis conf  

//过滤掉注释 和 空格 查看redis.conf 文件 并复制出来一份名为redis-6379.conf 的文件到当前目录   

cat redis.conf | grep -v "#" | grep -v "^$" > redis-6379.conf 

文件修改属性

port 6379
daemonize yes
logfile "6379.log"
dir /root/redis-4.0.14/data   //需要在redis-4.0.14目录下 通过 mkdir data 命令创建

配置文件修改好 就可以在 redis-4.0.14目录下 通过 redis-server redis-6379.conf 命令后台启动 

ps -ef | grep redis-   //查看所有为redis-的进程

root       7537      1  0 14:13 ?        00:00:00 redis-server *:6379
root       7558   7387  0 14:14 pts/0    00:00:00 grep --color=auto redis-

如上有redis-server* :6379 代表启动成功

后续可通过redis-cli 命令启动客户端 进行操作验证redis服务器 是否有启动成功

Redis自学第二天

redis的持久化保存 

redis持久化一般有两种方式 RDB 和 AOF

RDB又称为快照 AOF以日志形式保存(正常开发都是用AOF)

RDB启动方式有save和bgsave指令启动

sava指令是同步的 不会额外增加内存消耗 

bgsave指令后台启动 是异步的 但是会额外增加内存消耗  会启动一个新进程

RDB优点

是以二进制的方式存储 存储效率高

它是某个时间点的数据快照 恢复数据速度比AOF快 适合全量复制 数据备份的场景

例如 每小时执行bgsave指令 将数据快照拷贝到远程机器备份 用于灾难恢复

RDB缺点

RDB无法做到实时的持久化

RDB每次都需要读写全部数据 数据量大时效率低下 IO性能较低

RDB使用bgsave要通过linux的forx函数创建一个子进程 消耗内存资源

redis的RDB版本未统一 有可能版本不同导致数据格式不兼容

save的配置

redis-server redis-6379.conf

port 6379
daemonize yes
logfile "6379.log"
dir /root/redis-4.0.14/data 

dbfilename dump-6379.rdb

rdbcomperssion yes

rdbchecksum yes

save 1000 1  //在1000秒内发生1次数据变化 执行save指令保存

AOF日志形式存储

AOF写数据三种策略

appendfsync  1.always 每次操作都写入 everysec 每秒写入一次 no 系统控制写入

开启AOF支持

appendonly yes

开启AOF策略

appendfsync everysec(通常使用everysec策略 性能适中) always 每次写入性能较低  no无法控制 

appendfilename  filename 修改AOF配置文件名 建议配置为 appendonly-端口号.aof

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章