redis主要用于做缓存、实现消息队列、数据过期处理等服务,redis运行稳定、速度快,解决应用服务器的cpu和内存压力。
1. 配合关系型数据库做高速缓存 ,缓存高频次访问的数据,降低数据库io, 分布式架构,做session共享
2. 可以持久化特定数据。利用zset类型可以存储排行榜 利用list的自然时间排序存储最新n个数据
命令下载安装
#!/bin/bash
# make报错处理
# 1、没有找到make
sudo apt install make
# 2、/bin/sh: 1: pkg-config: not found(没有安装pkg-config)
sudo apt-get install pkg-config
# 3、/bin/sh: 1: cc: not found(没有安装gcc环境)
sudo apt install gcc
# 4、jemalloc/jemalloc.h: No such file or directory。make distclean && make
# 下载当前最新稳定版
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
# 解压
# tar -zvxf redis-6.0.6.tar.gz
# 不过我解压到指定目录
mkdir /usr/local/redis
tar -zvxf redis-6.0.6.tar.gz -C /usr/local/redis
cd /usr/local/redis
mv -f redis-6.0.6/* ./
rm -rf redis-6.0.6
make distclean && make
# 运行编译好的
# ./src/redis-server
nohup /usr/local/redis/src/redis-server &
# 查看是否已经运行,ps中-a为all,得到的所有进程用grep查找redis显示
ps -A | grep redis
以上是安装并启动了redis服务端,可正常执行客户端,并参考redis(nosql缓存数据库),官网指导:Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)
/usr/local/redis/src/redis-cli
help
set user "yun"
append user "lianjie"
get user
conf中配置:
bind 127.0.0.1 # 绑定的ip
protected-mode yes # 保护模式
port 6379 # 端口配置
requirepass 123456 # 设置请求密码
daemonize yes # 以守护进程的方式运行,就需要制定一个pid文件
logfile "" # 日志的文件路径名
database 16 # 数据库的数量,默认是16个数据库
always-show-logo yes # 是否总是显示logo
save 60 1 # 60秒内至少有一个值修改了,进行持久化操作。可以设置多个触发模式
stop-writes-on-bgsave-error yes # 持久化结果出错,是否还需要继续工作
rdbcompression yes # 是否压缩rdb文件
rdbchecksum yes # 保存rdb文件时进行错误检查校验
maxclients 1000 # 设置能连接上redis的最大客户端数量
maxmemory <bytes> # 配置redis最大的内存容量
maxmemory-prolicy noeviction # 内存达到上线后处理方式
volatile-lru 只对设置了过期时间的key进行LRU
allkeys-lru 删除lru算法的key
volatile-random 随机删除即将过期key
allkeys-random 随机删除
volatitle-ttl 删除即将过期的
noeviction 用不过期,返回错误
appendonly no # 默认是不开启aof模式的,默认是使用rdb方式持久化的
appendfilename "xx.aof" # 持久化文件的名字
appendfsync everysec # 每秒执行一次同步;always每次更改都会sync;no不执行sync,操作系统自己同步数据,数据块
设置密码并登录使用
redis-cli
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456"
OK
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"