Redis安装与基础配置
source link: http://blog.colorccm.com/2020/10/27/it/redis/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Redis安装与基础配置
Redis是一个key-value存储系统,是数据结构服务器,可以实现集群管理。
Redis安装
当前最新的版本是redis-6.0.8,但是需要较高的gcc版本(gcc5.3以上),用redis-5.0.9比较适合。
安装环境基础信息:
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
CentOS Linux release 7.7.1908 (Core)
- 下载redis
wget https://download.redis.io/releases/redis-5.0.9.tar.gz
- 解压
tar xvfz redis-5.0.9.tar.gz
- 编译
make
- 安装
make install PREFIX=/usr/local/redis
- 新建链接
cd /usr/bin
ln -s /usr/local/redis/bin/redis-server redis-server
ln -s /usr/local/redis/bin/redis-cli redis-cli
Redis启动
redis配置文件在安装包中的redis.conf
启动命令为redis-server redis.conf
如果需要后台启动,需要修改redis.conf中的daemonize配置daemonize yes
客户端登入可以使用redis-cli工具redis-cli -h 127.0.0.1 -p 6379 -a password
如果需要外部访问的,需要同步修改bindbind 0.0.0.0
Redis数据类型
Redis支持5中数据类型
- string: 字符串
- hash: 哈希
- list: 列表
- set: 集合
- zset: 有序集合
string 字符串
基本的数据类型SET key value
GET key
hash 哈希
哈希(key-value)数据类型HMSET name key value key value ...
HMGET name key key ...
HGET name key
list 列表
字符串列表,可以在头部或者尾部新增数据
从头部新增lpush name value
从尾部新增rpush name value
查询lrange name start end
lrange name 0 10
set 集合
数据集合,如果数据元素重复则不会新增sadd key value
smembers key
zset 有序集合
跟set类似,但是每一个元素都有一个分数,重复元素同样忽略,但是会更新分数
可以用来保存带权重的数据zadd key score value
zrangebyscore key start end
Redis配置
整体配置信息
在Redis的客户端工具中,使用CONFIG可以查询配置信息CONFIG GET XXX
CONFIG GET *
CONFIG SET xxx xxx
Redis的默认端口为6379,可以修改redis.conf的配置prot 6379
如果修改了端口,建议把pid文件的名称也同步修改pidfile /var/run/redis_6379.pid
连接安全密码
requirepass XXXX
Redis命令
- select 切换数据库
- del 删除数据
- dump 序列化数据
- exists 判断是否存在key
- expire 设定某个key的超时时间
- keys 查看所有key,支持通配符
- move 移动key到某个库
- persist 移除expire
- pttl/ttl 查看过期时间
- randomkey 随机返回一个key
- rename 重命名
- type 数据类型
服务器管理命令
- client kill 关闭客户端连接
- client list 客户端列表
- dbsize 当前库大小(key的数量)
- flushall 删除所有库所有key
- flushadb 删除当前库所有key
HyperLogLog
- PFADD 添加
- PFCOUNT 基数估算值
- PFMERGE 合并
Redis发布订阅
感觉没啥用,就不写了,聊天室?
在客户端中,使用MULTI开始一个事务,使用EXEC提交事务
保存经纬度信息,并可以进行相应的位置计算
- geoadd:添加地理位置的坐标。
- geopos:获取地理位置的坐标。
- geodist:计算两个位置之间的距离。
- georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
- georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。
- geohash:返回一个或多个位置对象的 geohash 值。
Redis stream
p.s. 后续用到再慢慢研究=.=
- XADD - 添加消息到末尾
- XTRIM - 对流进行修剪,限制长度
- XDEL - 删除消息
- XLEN - 获取流包含的元素数量,即消息长度
- XRANGE - 获取消息列表,会自动过滤已经删除的消息
- XREVRANGE - 反向获取消息列表,ID 从大到小
- XREAD - 以阻塞或非阻塞方式获取消息列表
- XGROUP CREATE - 创建消费者组
- XREADGROUP GROUP - 读取消费者组中的消息
- XACK - 将消息标记为”已处理”
- XGROUP SETID - 为消费者组设置新的最后递送消息ID
- XGROUP DELCONSUMER - 删除消费者
- XGROUP DESTROY - 删除消费者组
- XPENDING - 显示待处理消息的相关信息
- XCLAIM - 转移消息的归属权
- XINFO - 查看流和消费者组的相关信息;
- XINFO GROUPS - 打印消费者组的信息;
- XINFO STREAM - 打印流信息
Redis数据备份与恢复
redis中的数据并无持久化,可以使用save命令将数据持久化到本地
- 保存所有数据到本地
save
- 恢复数据
将本地的rdb文件放到启动目录中,并重新启动应用即可
Java使用Redis
java使用jedis连接redis
import redis.clients.jedis.Jedis;
public class Redis {
public static void main(String[] args) {
//新建jedis实例,需要配置host
Jedis jedis = new Jedis("host");
//授权
jedis.auth("");
//redis的运行情况
System.out.println(jedis.ping());
//设置数据
jedis.set("key", "value");
jedis.get("key");
}
}
Redis集群
Redis的集群有三种模式
- Sentinel模式
- Cluster模式主节点负责读写,从节点负责同步数据后提供读服务
从节点配置replicaof和masterauth,启动服务即可
查看集群信息info replication
sentinel模式
哨兵模式,只要master宕机了,会随机选择一个slave作为master
主要的逻辑与主从模式类似
p.s. 后续研究=.=Cluster模式
一主多从配置,从节点不提供服务statacluster-enabled yes
登录集群
cluster-config-file nodes_7001.conf
cluster-node-timeout 15000
redis-cli -a 123456 --cluster create ip:port ip:port ip:port ip:port --cluster-replicas 1redis-cli -h host -p port -a password -c
在命令行中以集群的方式使用redisredis-cli -a password -c --cluster call 0.0.0.0:port redis_commonds
redis-cli -a password -c --cluster call 0.0.0.0:port keys \*
redis-cli -a password -c --cluster call 0.0.0.0:port get XXXXX
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK