欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

redis

程序员文章站 2022-03-06 10:17:08
本篇导航: 介绍 安装与基本操作 常用操作 Redis可视化工具 一、介绍 1、memcached & redis是什么? 2、memcached与redis区别 3、memcached并未过时www.oschina.net/news/26691/memcached-timeout 二、安装与基本操 ......

Redis简介
Redis是一个内存型的NoSQL数据库.
NoSQL数据库和关系型数据库
关系型数据库, 数据是通过关系的形式进行存储和管理的.
NoSQL数据库, 泛指非关系型数据库. Redis, MongDB, …
Redis概述

  • Redis: REmote DIrectory Server. 远程字典服务. 在内存中通过k-v结构存放数据.
  • Redis官网: https://redis.io/, 中文网站: http://redis.cn/
  • Redis的版本: 奇数版表示开发版本, 偶数版表示稳定版. 实际开发中, 一定使用偶数版本. Redis从3.0.0开始支持集群(Cluster).
  • Redis特点:

存储和管理数据的结构: Key-Value结构, 有时候把Redis简称为一种kv服务器
Redis读写数据是在内存中进行的, 读写速度极快, 效率高
内存空间较小, 不适合存储海量数据
容易造成数据丢失. Redis会定期将内存数据保存到硬盘中, 可以减少数据的丢失.
实际使用中, Redis通常作为缓存使用, 配合关系型数据库一起工作.

  • 各版本下载地址: http://download.redis.io/releases/

单机版Redis安装
1.虚拟机克隆
  从快照克隆, 克隆后, 需要修改/etc/udev/rules.d/70-persistent-net.rules文件, 将网卡信息和网卡地址进行匹配. 同时需要修改/etc/sysconfig/network-scripts/ifcfg-eth0文件, 设置IP地址.
2.安装单机版Redis

  • 上传安装包并解压缩

  • 安装GCC, 用于进行代码的编译.
    yum install gcc-c++ -y

  • 进入redis解压目录, 执行代码编译
    make

  • 进入redis解压目录, 执行代码编译
    make

  • 进行安装
    make install [PREFIX=/usr/local/redis]. 建议携带参数, 否则在当前目录进行安装.

  • 前台启动Redis服务
    进入/usr/local/redis/bin/目录, 执行redis-server命令即可, 这样启动会占据终端.
    redis

  • 后台启动Redis服务(精灵模式)
    a) 从/usr/local/temp/redis-4.0.14/目录下拷贝redis.conf到安装目录
    cp /usr/local/temp/redis-4.0.14/redis.conf /usr/local/redis/
    b) 修改redis.conf配置文件
    注释掉bind 127.0.0.1
    redis
    关闭保护模式:
    redis
    开启后台模式
    redis
    c) 后台模式启动: bin/redis-server redis.conf
    d) 关闭redis服务: bin/redis-cli shutdown

Redis常用的数据类型和命令
1.Redis中的数据类型
  Redis是以k-v结构存放数据的. 数据类型指的是v部分的类型. Redis中有五种数据类型: string, hash, list, set, zset

  • string, 表示字符串类型. 此时类似于Map<String, String>
  • hash, k-v结构. 此时类似于Map<String, Map<String, String>>
  • list, Map<String, ArrayList>
  • set, Map<String, HashSet>
  • zset, Map<String, SortedSet>

2.常用命令
2.1 通用命令

  • ping, 测试连接, 成功时返回PONG
  • echo, 测试连接, 输出信息到控制台
  • quit, 退出客户端连接
  • clear, 清屏
  • select, 选择当前要使用的database, 通过索引进行定位. select index
  • keys, 查询相关的key. 测试时使用, 工作中不能使用!
  • del, 删除指定的key. del key1[ key2 …]
  • expire, 设置key的存活时间, 单位是秒, expire key seconds
  • ttl, 查看key的剩余存活时间, -1表示永久保存, -2表示key不存在, 正整数表示剩余时间.
  • persist, 取消key的过期时间.
  • flushdb, 清空当前database中的所有数据.
  • flushall, 清空所有database中的数据.

2.2 string命令

  • set, 新增或修改数据. 当key不存在时, 则新增, key存在时则修改.
    set key value
  • get, 通过key获取value.
  • incr, 自增. incr key
  • decr, 自减. decr key

2.3 hash命令

  • hset, 新增或修改数据.
    hset key field value
  • hget, 获取数据
    hget key field
  • hkeys, 获取一个key中所有的field
    hkeys key
  • hdel, 删除一个key中指定的field
    hdel key field [field2 …]

Redis集群

  • 认识集群
      集群, Cluster. 当一台服务器无法满足访问需求时, 可以使用多态服务器对外提供服务. 当用户访问时, 有一个统一的入口(对用户要屏蔽多台服务器的感觉).
    redis

2.Redis集群

  • Redis集群是需要程序员自己搭建的. 它是基于Ruby实现的. Redis集群通过CRC16的算法来计算数据的存储位置. Redis集群中, 将所有的集群节点拆分为16384个slot(槽), 每个槽位大小不固定(由机器的性能决定). 当用户请求到来时, Redis集群会先通过CRC16算法计算该数据应该出现在哪个槽位. CRC16算法可以保证相同的数据计算出的槽位是相同的.
  • Redis集群为了保证集群的可靠性, 采用主从(主备)模式. 集群节点由主机(Master)来充当, 每台Master至少要求一台备份机(Slaver)

redis

  • Redis集群安装
      生产环境中, 需要有多态安装了Redis的服务器构成集群. 课上搭建伪集群, 及在一台虚拟机中安装多个Redis服务, 由多个Redis服务构成集群.

a) 准备多个Redis服务. 我们准备6个Redis, 最小的集群.

  • 关闭单机版Redis服务, 删除dump.rdb文件.
  • 在/usr/local/目录下新建redisCluster目录, 复制6个redis目录到该目录下
  • 修改每个redis的端口号, 设置为7001~7006
  • 开启每个Redis的集群支持

b) 安装ruby环境

  • 上传ruby压缩包并解压缩
  • 安装openssl和openssl-devel支持
     yum install –y openssl openssl-devel
  • 进入解压目录, 进行配置
     ./configure --prefix=/usr/local/ruby
  • 编译并安装
     make && make install
  • 配置环境变量
     vim /etc/profile

c) 安装redis提供的ruby脚本库
 gem install redis-4.0.3.gem
d) 编写shell脚本, 启动6个redis服务. 默认.sh文件没有执行权限, 通过以下命令可以修改权限: chmod 755 *.sh

cd redis1
bin/redis-server redis.conf
cd ../redis2
bin/redis-server redis.conf
cd ../redis3
bin/redis-server redis.conf
cd ../redis4
bin/redis-server redis.conf
cd ../redis5
bin/redis-server redis.conf
cd ../redis6
bin/redis-server redis.conf

e) 查看redis节点是否启动
 ps –aux | grep redis
f) 从源码目录下的src目录复制redis-trib.rb到集群目录
 cp /usr/local/temp/redis-4.0.14/src/redis-trib.rb /usr/local/redisCluster
g) 执行redis-trib.rb进行集群的创建

./redis-trib.rb create --replicas 1 192.168.15.20:7001 192.168.15.20:7002 192.168.15.20:7003 192.168.15.20:7004 192.168.15.20:7005 192.168.15.20:7006

redis
redis
h) 随便连接一个节点进行测试
 redis1/bin/redis-cli -p 7001 –c
i) 编写关闭集群的shell脚本

redis1/bin/redis-cli -p 7001 shutdown
redis2/bin/redis-cli -p 7002 shutdown
redis3/bin/redis-cli -p 7003 shutdown
redis4/bin/redis-cli -p 7004 shutdown
redis5/bin/redis-cli -p 7005 shutdown
redis6/bin/redis-cli -p 7006 shutdown

Redis客户端
1.桌面客户端
Redis Desktop Manager, 桌面管理工具
下载地址: https://github.com/uglide/RedisDesktopManager/releases
2.Jedis
通过Java代码操作Redis的API. Redis的版本是多少, 就应该使用对应版本的Jedis.

本文地址:https://blog.csdn.net/qq_37206355/article/details/107450355

相关标签: 数据库 redis