Redis:单核的缓存服务,单节点情况下,更加适合于少量用户,多次访问的应用场景。
Redis一般是单机多实例架构,配合redis集群出现,数据大部分存放在内存中。
tar xzf redis-3.2.12.tar.gz make
export PATH=/data/redis/src:$PATH
(make install 可忽略)- 启动redis-server &
- 关闭redis-cli shutdown
- 设置redis-cli set num 10
- 查询redis-cli get num
配置文件
cat > /data/6379/redis.conf<<EOF
daemonize yes
port 6379
logfile /data/6379/redis.log
pidfile /opt/redis_6379/pid/redis_6379.pid
EOF
redis-server /data/6379/redis.conf
保护模式
vim /data/6379/redis.conf
方法一:bind 10.0.0.51 127.0.0.1
方法二:requirepass 123456
redis-cli -h 10.0.0.51 -p 6379 -a 123456
[root@db01 ~]# redis-cli -h 10.0.0.51 -p 6379
10.0.0.51:6379> set a 1
(error) NOAUTH Authentication required.
10.0.0.51:6379> AUTH 123456
OK
配置参数
查看所有参数
127.0.0.1:6379> CONFIG GET *
模糊查找
127.0.0.1:6379> CONFIG GET *max*
设置参数
CONFIG set maxmemory 128M
将所作配置生效
CONFIG REWRITE
1.noevicition 默认策略,不会删除任务数据,拒绝所有写⼊操作并返回客户端错误信息,此时只响应读操作
2.volatile-lru 根据LRU算法删除设置了超时属性的key,指导腾出⾜够空间为⽌,如果没有可删除的key,则退回到noevicition策略
3.allkeys-lru 根据LRU算法删除key,不管数据有没有设置超时属性
4.allkeys-random 随机删除所有key
5.volatile-random 随机删除过期key
5.volatile-ttl 根据key的ttl,删除最近要过期的key
应用场景
- 缓存-键过期,比如商场优惠卷、session、短信验证码
- 排行耪-列表&有序集合,比如点击量
- 计数器,比如视频播放次数、帖子浏览数
- 社交网络-集合,比如可能认识的人
- 消息队列,比如ELK缓存日志、聊天记录
普通用户管理
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/redis-server /opt/redis_6379/conf/redis_6379.conf
--supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
全局命令
keys *
查看所有keydbsize
查看有多少keyexists k1
查看key是否存在 0不存在 1存在 N有N个keydel k1
删除key 0要删除的不存在 1已删除expire k1 10
设置key的过期时间 0不存在 1设置成功ttl k1
查看key是否过期 -1没有设置过期时间永不过期 -2key不存在 N表示还有N秒过期persist k1
取消key过期时间flushall
清楚所有key
字符串操作
MSET k1 v1 k2 v2