以下内容均以CentOS7为背景。
一、Redis安装及启动
mysql(读:2000/s;写:600/s)
redis(读:10w/s;写:8w/s)通过官方给出的数据单机并发可以达到10w/s;
redis是基于key-value型的非关系型数据库,目前redis无法取代关系型数据库的根本原因,redis是基于内存的,断电即丢失,虽然有rdb和aof两种持久化机制但是,因为持久化是异步的,所以还是会存在数据丢失的情况;
redis官方版本,以6.2.7为例,版本号第一位是大版本,第二位如果是奇数则该版本为非稳定版本,偶数则相反;
首先在CentOS7中使用命令安装redis6.2.7:
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
当使用以上命令从官网获取到完整redis6.2.7安装包后,再使用解压命令解压至opt/redis-6.2.7下
tar -zxvf redis-6.2.7.tar.gz
随后进入解压后的redis6.2.7文件夹中,使用命令进行编译
make
至此redis安装完毕,虽然redis是用c写的,但是只依赖linux系统基本的类库,一般情况下很少出问题。
如果执行make命令报错:cc未找到命令,是因为虚拟机系统中缺少gcc库,执行以下命令安装gcc库即可;
yum -y install gcc automake autoconf libtool make
如果执行make命令报错:致命错误:jemalloc/jemalloc.h:没有那个文件或目录,则需要在make指定分配器为libc,执行以下命令即可;
make MALLOC=libc
bin目录下可执行文件:
redis-server: 启动redis;
redis-cli: 命令行工具;
redis-benchmark: 基准测试工具;
redis-check-aof: AOF持久化文件检测和修复工具;
redis-check-rdb: RDB持久化文件检测和修复工具;
redis-sentinel: 启动哨兵;
启动方式:
一:默认启动
进入bin目录执行以下命令:
./redis-server
二:带参数启动(以指定端口为例)
进入bin目录执行以下命令:
./redis-server --port 6380
三:配置文件启动
进入bin目录执行以下命令:
./redis-server ../redis.conf
如果要设置登陆密码则需要修改配置文件中的requirepass参数;
redis-cli命令行工具支持两种方式:
一:不带参数默认是连本地的redis服务;
./redis-cli
二:带参数单条命令;
./redis-cli -p 6379 set key value
停止redis:
一:杀死进程,强制停止(直接杀死进程会使redis还没有来得及做持久化就被强制停止,导致数据丢失);
kill -9 pid
二:在命令行工具内;
shutdown(有NOSAVE|SAVE两种,默认是SAVE)
二、Redis全局命令
查看所有键
keys *(查看所有,不推荐使用该命令,如果数据量过大该命令会导致线程阻塞,时间复杂度为O(n))
keys u*(带通配符)
dbsize(查看redis内key总数,该命令基于计数器,所以效率很快,时间复杂度为O(1))
exists(查看某一键是否存在,存在返回1,不存在则返回0)
del(删除指定键,后面可跟多个key,返回删除键的数量)
expire(对指定键设置过期时间,以秒为单位,成功返回1,失败返回0)
pexpire((对指定键设置过期时间,以毫秒为单位,成功返回1,失败返回0))
ttl(查看指定键的过期时间,如果键存在且设置的有过期时间,则返回剩余的过期时间,如果键存在但是没有设置过期时间,则返回-1,如果键不存在则返回-2)
存在过期时间但是还没有过期,返回剩余过期时间:
键存在,但是永不过期,返回-1:
键不存在,返回-2:
expireat(对指定键设置指定时间过期,时间戳,成功返回1,失败返回0)