首页 > 数据库 >redis

redis

时间:2023-11-21 23:00:48浏览次数:40  
标签:127.0 etc 0.1 redis 6379 root

redis

支持数据持久化,支持多种数据类型,支持数据备份

性能高,数据类型丰富,支持事务,支持订阅、消息队列

安装

官方编译安装

[root@redis:/usr/local/redis-4.0.0]# yum -y install gcc gcc-c++
[root@redis:~]# wget http://download.redis.io/releases/redis-4.0.0.tar.gz
[root@redis:/usr/local/redis-4.0.0]# tar xf redis-4.0.0.tar.gz -C /usr/local/
[root@redis:/usr/local/redis-4.0.0]# cd /usr/local/redis-4.0.0/
[root@redis:/usr/local/redis-4.0.0]# make 
[root@redis:/usr/local/redis-4.0.0]# make test
[root@redis:/usr/local/redis-4.0.0]# make install

image-20231121145851869

# 安装报错You need tcl 8.5 or newer in order to run the Redis test
yum install -y tcl-devel
make distclean
make
make test

yum安装

# 配置镜像源https://developer.aliyun.com/mirror/
# 安装
yum --enablerepo=epel -y install redis

启动

# 启动
service redis start
redis-server /usr/local/redis-4.0.0/redis.conf
# 启动并后台运行
nohup redis-server & 
# 配置后台启动
vim redis.conf
	daemonize yes
# 关闭命令
redis-cli shutdown
# 命令行客户端启动
redis-cli
# 指定端口
redis-cli -p 6379
# 指定端口后台启动
redis-server --port 6379 &

# 查看端口、版本
[root@redis:~]# redis-cli info|grep redis_version
redis_version:4.0.0
[root@redis:~]# redis-cli info|grep tcp_port
tcp_port:6379

开机启动

[root@redis:~]# mkdir -p /etc/redis/
[root@redis:~]# cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6379.conf
[root@redis:~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6379
[root@redis:~]# chmod  +x /etc/init.d/redis-6379
[root@redis:~]# chkconfig redis on

# 文件头部加这两行不报错:服务 redis-6379 不支持 chkconfig
[root@redis:~]# head -2 /etc/init.d/redis-6379
#chkconfig: 2345 90 10
#description: redis is a persistent key-value database
image-20231121202820137
# 命令行查看相关参数
[root@redis:~]# redis-cli
127.0.0.1:6379> config get *

# 添加密码
[root@redis:~]# grep 'requirepass' /etc/redis/6379.conf
requirepass 111
# 重启
[root@redis:~]# /etc/init.d/redis-6379 stop
[root@redis:~]# /etc/init.d/redis-6379 start
# 登录
[root@redis:~]# redis-cli -a 111
# 或者
[root@redis:~]# redis-cli -h 192.168.79.137
127.0.0.1:6379> auth 111
OK

# 设置监听端口bind ip
[root@redis:~]# grep 'bind' /etc/redis/6379.conf
bind 192.168.79.137
[root@redis:~]# /etc/init.d/redis-6379 stop
[root@redis:~]# /etc/init.d/redis-6379 start
[root@redis:~]# netstat -lntup|grep redis
tcp        0      0 192.168.79.137:6379     0.0.0.0:*               LISTEN      11430/redis-server  
# 登录需要指定ip
[root@redis:~]# redis-cli -h 192.168.79.137 -a 111

主从架构

# 主:192.168.79.137:6379 (不要设密码)
[root@redis:~]# cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6379.conf
[root@redis:~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6379
[root@redis:~]# egrep '^port|^bind|^slaveof|^masterauth|^daemonize|^protected-mode|^requirepass' /etc/redis/6379.conf 
bind 192.168.79.137
protected-mode yes
port 6379
daemonize yes
masterauth <master-password>
[root@redis:~]# redis-cli -h 192.168.79.137 -p 6379
192.168.79.137:6379> auth 111
OK
192.168.79.137:6379> info Replication
# Replication
role:master
192.168.79.137:6379> get name

# 从:192.168.79.137:6380
[root@redis:~]# cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6380.conf
[root@redis:~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6380
[root@redis:~]# sed -ri 's#REDISPORT=6379#REDISPORT=6380#g' /etc/init.d/redis-6380
[root@redis:~]#  egrep '^port|^bind|^slaveof|^masterauth|^daemonize|^protected-mode' /etc/redis/6380.conf
bind 192.168.79.137
protected-mode no
port 6380
daemonize yes
slaveof 192.168.79.137 6379
masterauth 111
# 启动
[root@redis:~]# /etc/init.d/redis-6380 start
[root@redis:~]# redis-cli -h 192.168.79.137 -p 6380 -a 111
192.168.79.137:6380> info Replication
# Replication
role:slave
192.168.79.137:6380> keys *
1) "name"

image-20231121213639127

基本操作

# 命令行客户端启动
redis-cli

# 测心跳
[root@redis:~]# redis-cli
127.0.0.1:6379> ping
PONG

# 设置mykey键的值
127.0.0.1:6379> set mykey hello
# 获取mykey键的值
127.0.0.1:6379> get mykey
# 设置mykey失效事件
127.0.0.1:6379> expire mykey 2

# 查看当有redis配置信息
127.0.0.1:6379> config get *

# 获取所有的key
127.0.0.1:6379> keys *

# 删除redis当前数据库中所有key
127.0.0.1:6379> flushdb //删除当前库的所有
127.0.0.1:6379> flushall //删除所有数据库

# 查看 key 数量 dbsize
127.0.0.1:6379> dbsize

# 退出客户端命令
127.0.0.1:6379> quit或者exit

# DB 切换 select(Redis 默认有 16 个数据库);默认使用的是 0 号 DB,可以通过 select db 索引来切换 DB
127.0.0.1:6379> select 3

# 查看各种不同类型的命令的执行统计信息
127.0.0.1:6379> info commandstats

数据类型

Redis 中存储的数据整体是一个 Map,其 key 为 String 类型,而 value 则可以是 String、Hash 表、List、Set 等类型。

# 字符串
set name hhh
get name

# hashes
hmset king hhh 123
hgetall king

# list
lpush names zz cc xx
lrange names 0 -1

# 有序set
//withscores 让成员和scores值一并返回
127.0.0.1:6379> zadd program 1 redis
(integer) 1
127.0.0.1:6379> zadd program 2 mysql
(integer) 1
127.0.0.1:6379> zrange program 0 10
1) "redis"
2) "mysql"
127.0.0.1:6379> zrange program 0 10 withscores
1) "redis"
2) "1"
3) "mysql"
4) "2"

监控

# 实时查看性能--stat
[root@redis:~]# redis-cli -p 6379 --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections          
2          1.81M    1       0       1994 (+0)           4           
2          1.81M    1       0       1996 (+2)           4 

# 查看内存最大键值和平均键值数据--bigkeys
[root@redis:~]# redis-cli -h -p 6379 --bigkeys

# 查看当前键值情况 --scan
[root@redis:~]# redis-cli -p 6379 --scan

# 原生的monitor监控
127.0.0.1:6379> monitor

配置

daemonize yes # 后台启动
bind 127.0.0.1 # 监听地址
protected-mode no # 保护模式,开启后redis只会本地访问,拒绝外部访问
pidfile /var/run/redis/redis-server.pid # 进程pid写入哪个文件
port 6379 # 监听端口
tcp-backlog 511 # 最大并发队列(实际跟操作系统内核参数[默认128]相关)
timeout 0 # 超时时间
tcp-keepalive 0 # 超时时间
loglevel notice # 指定服务端日志级别(notice、warn、debug)
logfile /var/log/redis/redis.log # 日志文件
#syslog-enabled no # 是否打开记录syslog功能
# syslog-ident redis # syslog标识符
# syslog-facility local0 # 日志的来源设备
databases 16 # 数据库的数量

备份和恢复

备份:通过save或bgsave命令进行手动备份,手动备份会阻塞主进程,建议使用bgsave

恢复:将备份文件(默认dump.rdb)放在redis数据目录下,并在配置文件中设置dbfilename参数为备份文件名,然后启动redis就可以完成数据恢复

image-20231121224959073

image-20231121225016259

标签:127.0,etc,0.1,redis,6379,root
From: https://www.cnblogs.com/mononoke/p/17847840.html

相关文章

  • 10、Redis哨兵(sentinel)【面试重点】
    一、是什么二、能干嘛三、怎么玩(案例演示实战步骤)1、RedisSentinel架构,前提说明2、案例步骤2.1sentinel.conf文件位置2.2重点参数项说明2.3本次案例哨兵sentinel文件通用配置2.4先启动一主二从3个redis实例,测试正常的主从复制以下是哨兵......
  • SpringBoot使用RedisTemplate
    SpringBoot使用RedisTemplate目录1.Redis五种基础数据结构2.SpringBoot连接Redis1引入依赖2配置redis连接3编写测试类3.详解RedisTemplate的API1常用数据操作2.几种数据结构操作的具体用法1.Redis五种基础数据结构参考链接:Redis入门-数据类型:5种基础数据类......
  • Redis主从
    如何配置:方式一:6380是从,6379是主在6380上执行(去从库配置,配置主库)-在从库执行SLAVEOF127.0.0.16379,-断开关系slaveofnoone方式二:配置文件(配在从库的配置文件中)slaveof127.0.0.16379slave-read-onlyyes"""vimredis.conf #写入......
  • 手工创建Redis 集群
    官方的工具redis-trib.rb需要使用ruby,在kylin上不好安装。所以需要手工配置rediscluster。1.使用配置文件启动redis按照ip后缀拷贝到机器(90-92)上,每个机器上启动两个示例,分别使用6379和6380端口。redis启动命令:./redis-serverredis.conf启动失败处理:错误提示:1593407:M07Jul......
  • Redis集群的实例什么情况使用redis集群和哨兵
    当考虑Redis集群和哨兵的使用时,我们可以考虑一个在线购物系统的场景,其中需要处理用户会话数据。这个例子将涵盖横向扩展、高可用性和故障处理的方面。场景描述:假设你的在线购物系统使用Redis存储用户会话数据,以提供个性化的购物体验。用户的会话数据包括购物车、用户偏好设置等......
  • Redis的其他操作、celery
    Redis的其他操作'''delete(*names)exists(name)keys(pattern='*')expire(name,time)rename(src,dst)move(name,db))randomkey()type(name)'''redis的key值,最大可以是多少? #最大不超过512M一般1KBredis的value值,最大可以是多少? #最大不超过51......
  • redis介绍使用、数据类型的使用方法
    redis介绍与安装#1redis什么 -数据库就是个存数据的地方:只是不同数据库数据组织,存放形式不一样 -mysql关系型数据库(oracle,sqlserver,postgrasql)-非关系型数据(nosql):redis,mongodb,clickhouse,infludb,elasticsearch,hadoop。。。 -没有sql:没有sql语句-not......
  • 【Redis使用】一年多来redis使用笔记md文档,第(2)篇:命令和数据库操作
    Redis是一个高性能的key-value数据库。本文会让你知道:什么是nosql、Redis的特点、如何修改常用Redis配置、写出Redis中string类型数据的增删改查操作命令、写出Redis中hash类型数据的增删改查相关命令、说出Redis中list保存的数据类型、使用StrictRedis对象对string类型数据......
  • redis
    redis单机安装安装并配置redis服务[root@localhost~]#ll-rw-r--r--1rootroot196633710月1010:09redis-5.0.4.tar.gz[root@localhost~]#tarxfredis-5.0.4.tar.gz[root@localhost~]#cdredis-5.0.4/[[email protected]]#make[root@localhostred......
  • Redis入门篇(一)
    初学Redis简介以及入门一.Redis的介绍1.什么是redis?Redis(RemoteDictionaryServer)是一个开源的内存数据结构存储系统。它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。与传统的关系型数据库相比,Redis是一种更加快速高效的数据存储方式。Redis在内存中存......