Redis安装与基础配置

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
  • 新建链接
    1
    2
    3
    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
如果需要外部访问的,需要同步修改bind
bind 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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模式

    一主多从配置,从节点不提供服务
    1
    2
    3
    4
    5
    cluster-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 1
    登录集群
    redis-cli -h host -p port -a password -c
    在命令行中以集群的方式使用redis
    redis-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

Redis安装与基础配置
http://blog.colorccm.com/2020/10/27/it/redis/
作者
Chibao Chan
发布于
2020年10月27日
许可协议