前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis初识学习(一)

Redis初识学习(一)

作者头像
公众号: 云原生生态圈
发布2021-11-15 17:43:09
3020
发布2021-11-15 17:43:09
举报
文章被收录于专栏:云原生生态圈

1 redis 初始

1.1 redis是什么

  • 开源的
  • 具有多种数据结构
  • 高性能key-value服务器
  • 高性能,功能丰富(pipeline,发布订阅,位图等等)
  • 高可用分布式支持
  • codis
  • Twemproxy

1.2 redis的特性介绍

1.2.1 速度快

官方测试数据是:10w OPS(每秒处理10万的读写)

  • Redis的数据是存储于内存中
  • Redis是使用C语言编写的,代码也只有50000多行
  • Redis是单线程的线程模型å

Redis速度快的最主要的原因是存储的介质:

register

fast

small

expensive

一级缓存

二级缓存

基于内存

本地磁盘

远程磁盘

slow

big

cheap

比较常见存储类型的读写

类型

每秒读写次数

随机读写延迟

访问带宽

内存

千万级

80ns

5GB

SSD盘

35000

0.1-0.2ms

100~300MB

机械盘

100左右

10ms

100MB左右

1.2.2 持久化

redis所有的数据保存在内存中,对数据的更新将异步地保存在磁盘上

1.2.3 支持多种数据结构

字符串,哈希,列表,集合,有序集合;

在后期的版本中衍生出了一些数据类型如:

  • 位图(bitmaps)
  • HyperLogLog: 超小内存唯一值计数
  • GEO: 地图信息定位,可以用于计算经度纬度。
1.2.4 支持多种编辑语言
  • ruby , python , go , java,php
1.2.5 功能丰富
  • 发布订阅
  • 支持lua脚本
  • 支持简单的事务功能
  • 支持pipeline,写一写并发脚本的功能
1.2.6 简单
  • 不依赖外部库(like libevent)
  • 单线程的进程模型
1.2.7 主从复制
1.2.8 高可用,分布式
  • 高可用: redis-sentinel(v2.8)支持高可用
  • 分布式: redis-cluster(3.0)支持分布式

1.3 redis典型的应用场景

  • 缓存系统
  • 充当cache层
  • 计数器
  • 排行榜
  • 消息队列系统
  • redis实现的分布订阅这样的消息队列系统
  • 社交网络
  • 实时系统
  • 垃圾邮件处理系统
  • 过滤处理系统

1.4 redis安装

1.4.1 编译安装

代码语言:javascript
复制
wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar xf redis-3.0.6.tar.gz
mv redis-3.0.6 /usr/local/cd /usr/local/
ln -s redis-3.0.6 redis
make && make install
root# which redis-server/usr/local/bin/redis-server# 运行redis服务,直接执行redis-server即可redis-server# 客户端连接redis-cli -h127.0.0.1 -p6379

6379是redis的默认端口,据说是redis的老式手机的键盘上敲打一个女歌手的名字时按到的数字; 1.4.1.1 验证服务运行

代码语言:javascript
复制
# 1ps -ef |grep redis# 2netstat -tunlp |grep redis# 3redis-cli -hlcoalhost -p6379 ping
1.4.1.2 redis可执行文件的说明
  • Redis-check-aof: aof文件修复工具
  • Redis-check-dump: rdb文件检查工具
  • Redis-sentinel: sentinel服务器(2.8以后)

1.4.2 redis启动方式

  • 直接运行redis-server
代码语言:javascript
复制
redis-server
  • 动态参数启动redis
代码语言:javascript
复制
redis-server --port 6380[root@devops-node4 ~]# ps -ef |grep redis | grep -v greproot       6619   3438  0 00:07 pts/0    00:00:00 redis-server *:6379root       6627   6442  1 00:07 pts/1    00:00:00 redis-server *:6380
  • 使用配置文件启动redis
  • 生产环境建议使用模式,比如多实例配置的时候使用配置文件启动比较方便
代码语言:javascript
复制
cd /usr/local/redis/
mkdir config/data -pv
cp redis.conf config/redis6381.conf
cat config/redis6381.conf
daemonize yes
port 6381dir "/usr/local/redis/config/data"logfile "6381.log"[root@devops-node4 ~]# redis-server /usr/local/redis/config/redis6381.conf [root@devops-node4 ~]# ps -ef |grep redis |grep -v greproot       6619   3438  0 00:07 pts/0    00:00:00 redis-server *:6379root       6627   6442  0 00:07 pts/1    00:00:00 redis-server *:6380root       6912      1  2 00:15 ?        00:00:00 redis-server *:6381# 查看日志是否写入[root@devops-node4 data]# cat /usr/local/redis/config/data/6381.log |grep 6381|`-._`-...-` __...-.``-._|'` _.-'|     Port: 63816912:M 28 Feb 00:15:50.488 * The server is now ready to accept connections on port 6381

1.4.3 客户端返回值

  • 状态回复 ping
  • 错误回复 hget hello field
  • 整数回复 incr hello
  • 字符串回复 get hello
  • 多行字符串回复 mget hello foo

1.4.4 redis常用配置

  • daemonize: 是都运行在后台进程
  • port: 指定运行的端口
  • logfile: redis日志文件文件名
  • dir: redis工作目录
  • RDB config的配置
  • AOF config的配置
  • slow log config的配置
  • maxMemory等等
代码语言:javascript
复制
# 在redis服务中查看所有的配置项redis> config get *

未完待续。。。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 redis 初始
    • 1.1 redis是什么
      • 1.2 redis的特性介绍
        • 1.2.1 速度快
        • 1.2.2 持久化
        • 1.2.3 支持多种数据结构
        • 1.2.4 支持多种编辑语言
        • 1.2.5 功能丰富
        • 1.2.6 简单
        • 1.2.7 主从复制
        • 1.2.8 高可用,分布式
      • 1.3 redis典型的应用场景
        • 1.4 redis安装
          • 1.4.1 编译安装
            • 1.4.1.2 redis可执行文件的说明
          • 1.4.2 redis启动方式
            • 1.4.3 客户端返回值
              • 1.4.4 redis常用配置
              相关产品与服务
              云数据库 Redis
              腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档