前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis入门

redis入门

作者头像
epoos
发布2022-06-06 15:58:01
3160
发布2022-06-06 15:58:01
举报
文章被收录于专栏:epoos.comepoos.com

Redis是一个内存高速缓存数据库,redis全称 Remote Dictionary Server(远程数据服务) Redis是一个key-value存储系统,它支持很多数据类型:string、list、set、zset、hash Redis以内存作为存储介质,读写数据效率高,远超过数据库。 Redis也支持持久化存储,即将数据定时存储备份到硬盘,当遭遇停电或者宕机的情况下数据不至于丢失。

安装redis

代码语言:javascript
复制
sudo apt-get install redis-server # ubuntu 安装
brew install redis # Mac安装

关闭、启动、重启 redis-server

代码语言:javascript
复制
# ubuntu 这里有点问题,通过杀进程的方式关闭不了redis,得用下面的这种方式
/etc/init.d/redis-server stop
/etc/init.d/redis-server start
/etc/init.d/redis-server restart

redis 常用命令

代码语言:javascript
复制
ps -ef|grep redis # 查看redis进程

redis-cli # redis 命令界面 - 本地连接
redis-cli -h REDIS_HOST_IP_ADDR -p 6379 -a 123456 # redis 命令界面 - 通过IP地址连接

brew services start redis # Mac 启动redis服务
brew services stop redis # Mac 关闭redis服务
brew services restart redis # Mac 重启redis服务

ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents # Mac 使用配置文件启动redis-server
redis-server /usr/local/etc/redis.conf # Mac 使用配置文件启动redis-server
redis-cli shutdown  # Mac 停止redis服务
/usr/local/etc/redis.conf # Mac redis配置文件位置
brew uninstall redis rm ~/Library/LaunchAgents/homebrew.mxcl.redis.plist # 卸载redis

redis 常用用法

代码语言:javascript
复制
set age 25 # 设置一个 redis 数据 age
keys * # 查看 redis 数据
get age # 查看 redis 数据 age

如果设置了密码

如果设置了密码可能回报错

代码语言:javascript
复制
(error) NOAUTH Authentication required.

解决办法:

代码语言:javascript
复制
redis-cli
auth 'yourpassword'
keys *
# is ok, will show all keys!

redis-cluster

Redis支持集群模式,能够更稳定的存储数据

redis-sentinel

Redis 的 Sentinel 系统用于管理多个 Redis 服务器 sentinel配置实践如下,包括两个配置文件,一个是redis服务配置,另一个是sentinel配置

redis配置文件

代码语言:javascript
复制
port 6379
daemonize yes
#logfile "log/6379.log"
slave-read-only no
requirepass "123456"
dbfilename "dump-6379.rdb"
# dir "/Users/zsr/learn/redis/data/"

sentinel配置文件

代码语言:javascript
复制
port 26379
# dir "/Users/zsr/learn/redis/data"
# logfile "26379.log"
sentinel myid c83c4d372c28916980ac2eca754b13cc794359fd
sentinel monitor mymaster 10.242.22.138 6379 2
#sentinel auth-pass mymaster 123456a
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
# Generated by CONFIG REWRITE
sentinel known-slave mymaster 10.242.22.138 6380
sentinel known-slave mymaster 10.242.22.138 6381
sentinel current-epoch 0
protected-mode no

配置完毕之后,直接运用redis-server启动sentinel服务:

代码语言:javascript
复制
redis-server sentinel-26379.conf --sentinel &;

配置完毕之后,直接运用redis-server启动redis服务:

代码语言:javascript
复制
redis-server redis-6379.conf

利用ioredis nodejs连接sentinel方式

代码语言:javascript
复制
const Redis = require('ioredis')
let redisConfig = {
  sentinels: [{
    host: '10.242.22.138',
    port: 26379
  }],
  password: '123456',
  name: 'mymaster'
}
const client = new Redis(redisConfig)
let redisIsOk = false
client.on('ready', () => {
  redisIsOk = true
  global.logger.server('redis is ready!')
})
client.on('error', (err) => {
  redisIsOk = false
  global.logger.server('redis is on error! errmsg:' + err.toString(), 'ERROR')
})

module.exports = {
  /**
   * 存入redis
   * expire (单位:s)
   */
  set: (key, value, expire) => {
    return new Promise((resolve, reject) => {
      if (!redisIsOk) {
        reject(false)
      }
      client.set(key, value).then((res) => {
        resolve(true)
      })
      expire = expire || 24*3600
      // 过期时间默认1天
      client.expire(key, expire)
    })
  },
  /**
   * return false || value
   */
  get: (key) => {
    return new Promise((resolve, reject) => {
      if (!redisIsOk) {
        reject(false)
      }
      client.get(key).then((value) => {
        resolve(value)
      })
    })
  },
  del: (key) => {
    if (!redisIsOk) {
      reject(false)
    }
    return new Promise((resolve, reject) => {
      client.del(key).then((value) => {
        resolve(value)
      })
    })
  }
}

相关链接

nodejs连接Redis开源库,支持sentinel Mac 安装redis redis文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装redis
  • 关闭、启动、重启 redis-server
  • redis 常用命令
  • redis 常用用法
  • 如果设置了密码
  • redis-cluster
  • redis-sentinel
    • redis配置文件
      • sentinel配置文件
      • 利用ioredis nodejs连接sentinel方式
      • 相关链接
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档