×

redis 数据库编程

Redis初识

feihu1996 feihu1996 发表于2020-05-13 10:37:03 浏览42 评论2

2人参与发表评论

一、盛赞Redis

1、高性能Key-Value服务器

2、多种数据结构

2.1 字符串

2.2 哈希

2.3 列表

2.4 集合

2.5 有序集合

2.6 衍生数据结构和算法

  • GEO
  • Hyperloglog

3、丰富的功能

3.1 pipeline

3.2 慢查询

3.3 发布订阅

3.4 GEO

3.5 位图

4、高可用分布式支持

4.1 Redis-Sentinel

高可用

4.2 Redis-Cluster

分布式

二、Redis是什么

1、开源

2、基于键值的存储服务系统

3、多种数据结构

4、高性能、功能丰富

三、Redis的特性回顾

1、速度快

1.1 10w QPS

1.2 数据存在内存中

1.3 使用C语言编写

1.4 单线程模型

  • 基于内存
  • 单线程读写非常快
  • 多线程会成为并发的瓶颈

2、持久化

2.1 断电不丢数据

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

2.2 RDB

2.3 AOF

3、多种数据结构

3.1 字符串

3.2 哈希

3.3 列表

3.4 集合

3.5 有序集合

3.6 衍生数据结构

  • 基于字符串
    • BitMaps

      位图

      用很小的内存实现高效的存储

      布隆过滤器

    • HyperLogLog

      超小内存唯一值计数

      计数不是非常准确,存在一定的误差率

  • 基于有序集合

    GEO

    地理信息定位

4、支持多种编程语言

4.1 受到很多公司的支持

4.2 提供了一种非常简单的基于tcp的通讯协议

4.3 Java

4.4 PHP

4.5 Python

4.6 Ruby

4.7 Lua

4.8 Node.js

5、功能丰富

5.1 发布订阅

实现许多基于消息的功能

5.2 Lua脚本

实现自定义命令

5.3 事务

5.4 pipeline

提高客户端的分发效率

6、简单

6.1 代码短小精悍

6.2 使用简单

6.3 不依赖外部库

6.4 单线程

服务端、客户端开发相对容易一些

7、主从复制

7.1 主服务器的数据可以同步到从服务器上

7.2 可以为高可用和分布式提供良好的基础

8、高可用分布式

8.1 Redis-Sentinel支持高可用

8.2 Redis-Cluster支持分布式

四、Redis典型使用场景

1、缓存系统

2、计数器

微博的转发数和评论数

3、消息队列系统

  • 发布订阅/阻塞队列实现了类似的模型
  • 简单的消息队列

4、排行榜

有序集合

5、社交网络

  • 粉丝数
  • 关注数
  • 最新时间轴列表

6、实时系统

位图

垃圾邮件处理系统

布隆过滤器

五、Redis单机安装

1、Redis安装

wget http://download.redis.io/releases/redis-6.0.1.tar.gz
tar -xzf redis-6.0.1.tar.gz
ln -s redis-6.0.1 redis
cd redis
make && make install

2、可执行文件说明

2.1 安装目录下有个src 文件夹,存放了一系列Redis可执行文件

2.2 redis-server

启动Redis服务器

2.3 redis-cli

Redis命令行客户端

2.4 redis-benchmark

Redis性能测试工具

2.5 redis-check-aof

AOF 文件修复工具

2.6 redis-check-dump

RDB 文件检查工具

2.7 redis-sentinel

sentinel服务器

3、三种启动方法

3.1 最简启动

  • 以默认配置启动
  • redis-server
  • 验证启动
    • ps -ef | grep redis 
    • netstat-antpl | grep redis 
    • redis-cli-h host -p port ping 

3.2 动态参数启动

redis-server —port 6380

3.3 配置文件启动

# 生产环境选择配置文件启动方式
# 单机多实例配置文件可以用端口区分开
redis-server /path/your config path

4、简单的客户端连接

redis-cli -h hostname -p port

redis客户端返回值

4.1 状态回复

执行ping ,返回pong

4.2 错误回复

对字符串类型的键值执行hget命令,返回错误

4.3 整数回复

incr计数器命令返回1

4.4 字符串回复

对字符串类型的键值执行get命令返回字符串

4.5 多行字符串回复

对多个字符串类型的键值执行mget命令,返回多个字符串

5、redis常用基本配置

5.1 daemonize

是否是守护进程(no/yes)

默认值是no

5.2 port

Redis对外端口号

默认值是6379

5.3 logfile

Redis系统日志

只是一个文件名

5.4 dir

Redis工作目录

5.5 使用Redis Shell查看配置

config get *

群贤毕至

访客
feihu1996 feihu19962020-05-13 11:52:23 | 回复 hello篇
feihu1996 feihu19962020-05-13 11:52:30 | 回复 嗯嗯