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