• 分布式--Redis的安装与数据类型的使用


    Redis是一种NoSQL数据库,NoSQL的意思是不仅仅可以使用关系型数据库,由于关系型数据库的数据是存储在文件中,每次操作都是IO操作,而文件的IO操作又是比较缓慢的,NoSQL打破了原先一个表对应表字段,然后再存储数据的方式,将数据以特殊的方式存储,对程序运行效率有显著的提升
    目前市面上常见的NoSQL有以下几种:

    NoSQL描述
    memcached内存型数据库,所有数据存储于内存中,以键值对形式存放
    Redis内存型数据库,还具备持久化能力,代价是性能有所降低
    HBase以列作为存储
    MongoDB以Document作存储

    一、Redis安装与启动

    安装可以直接使用yum

    1. yum install epel-release
    2. yum install redis

    由于下面需要模拟多台Redis服务器,需要复制多份Redis,yum方式会直接安装到/usr/bin目录,不方便复制,所以我们以手动编译的方式

    1. 安装Redis

    Redis使用c语言编写,所以编译需要使用c的编译工具:

    yum install -y gcc-c++ automake autoconf libtool make tcl

    官网文档:https://redis.io/docs/getting-started/installation/install-redis-from-source/

    1. wget https://download.redis.io/redis-stable.tar.gz
    2. tar -xzvf redis-stable.tar.gz
    3. cd redis-stable
    4. make

    指定Redis安装到/usr/local/redis目录

    make install PREFIX=/usr/local/redis

    官网首页上也可以下载到编译完的压缩包

    2. 配置Redis

    回到你解压出Redis的目录,里面有个redis.conf文件,将它拷贝一份到Redis安装目录/usr/local/redis

    cp ./redis.conf /usr/local/redis/bin/

    修改配置文件中下面的选项:

    1. # 后台方式启动
    2. daemonize yes
    3. # 注释下面bind配置
    4. # bind 127.0.0.1 -::1
    5. # 允许外部访问
    6. protected-mode no

    3. 启动Redis

    启动时指定使用配置文件

    ./redis-server redis.conf

    二、Redis数据类型

    Redis常用五大类型:

    类型描述使用场景
    stringkey-value形式存储,是redis最基本的类型,最大存储512MB所有key-value形式的存储
    hashkey-field-value形式存储,一个key可以对应多个field存储对象
    list有序的字符串列表消息队列、列表
    set无序集合,内部无重复值,和Java中的HashSet类似去重、判断是否存在集合中
    zset除了set的特性外,还具有优先级,按照优先级排序,默认优先级为插入顺序排行榜

    三、Redis常用命令

    官网文档:https://www.redis.net.cn/order/

    下面使用Redis的客户端,来简单使用下命令

    ./redis-cli

    1. 操作string

    1.1 set

    设置key-value:

    set name zhangsan

    返回:OK

    1.2 get

    获取key对应的value:

    get name

    返回:value值

    1.3 setnx

    设置key-value,且仅当key不存在时:

    setnx name lisi

    返回:改变数

    1.4 setex

    设置key-value,并指定过期时间:

    setex name 3 lisi

    返回:OK

    2. 操作key

    2.1 exists

    判断key是否存在:

    exists name

    返回:不存在返回0,存在返回1

    2.2 expire

    为key设置过期时间,单位秒:

    expire name 5

    返回:成功 1 失败 0

    2.3 ttl

    查看key过期剩余时间:

    ttl name

    返回:过期 -2、永不过期 -1、没过期 剩余时间

    2.4 del

    删除key对应的key-value:

    del name

    返回:成功 1 失败 0

    3. 操作hash

    3.1 hset

    设置key-field-value:

    1. hset person name zhangsan
    2. hset person age 18

    返回:成功 1 失败 0

    3.2 hget

    获取key中field对应的值:

    hget person name

    返回:value值

    3.3 hmset

    一次性设置多个field-value:

    hmset person address beijing gender man

    返回:成功 OK

    3.4 hmget

    一次性获取多个field的值:

    hmget person address gender

    返回:多个value值

    3.5 hvals

    获取所有value值:

    hvals person

    返回:多个value值

    3.6 hgetall

    获取所有field和value:

    hgetall person

    返回:多个field和value值

    4. 操作list

    4.1 rpush

    向一个列表末尾中插入一个或多个值,如果列表不存在,则创建

    rpush list a b c

    返回:成功 列表中元素数

    4.2 lpush

    向一个列表头中插入一个或多个值,如果列表不存在,则创建

    lpush list d e f

    返回:成功 列表中元素数

    4.3 lrange

    返回列表中指定区间内的值,可以用-1代表末尾

    lrange list 0 -1

    返回:查询到的值

    4.4 llen

    获取列表长度

    llen list

    返回:列表长度

    4.5 lrem

    删除列表中的指定个数的指定value,个数为正,从左往右删除,为负,从右往左删除

    lrem list 2 f

    返回:删除数量

    5. 操作set

    5.1 sadd

    将一个或多个值插入集合中,重复元素不生效,如果集合不存在,则创建

    sadd blacks a b c

    返回:插入数

    5.2 scard

    返回集合元素数量

    scard blacks

    返回:集合元素数量

    5.3 smembers

    返回集合中的元素

    smembers blacks

    返回:集合中所有元素

    6. 操作zset

    6.1 zadd

    向有序集合中添加分数和数据,集合不存在,则创建

    zadd rank 10 xiaoming 20 xiaohei

    返回:插入数

    6.2 zrange

    获取指定区间的集合内容,withscores表示带有分数

    1. zrange rank 0 -1
    2. zrange rank 0 -1 withscores

    返回:集合内容

  • 相关阅读:
    kotlin完成 Code War 题目 解析分子公式
    冲量在线出席隐私计算Meet-Up活动,探讨如何利用可信执行环境(TEE)和软硬件结合的方案使隐私计算市场迈向大规模生产
    Docker安装MySQL 8.0镜像,简易上手
    【Git】git revert 命令(撤销 commit 改动)
    java毕业设计宠物之家电子商务网站mybatis+源码+调试部署+系统+数据库+lw
    持续造风,快手为品牌、商家提供“保姆式”服务
    【小程序源码】视频壁纸支持多种分类短视频另外也有静态壁纸
    HTML 实现 点击按钮切换 整张界面 && 点击按钮切换局部界面
    【AGV机器人智能取物】企业都能用得起的WMS/RFID系统立体智能仓库
    [尚硅谷React笔记]——第9章 ReactRouter6
  • 原文地址:https://blog.csdn.net/qq_24000367/article/details/125457592