IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Go--Redis快速入门指南 -> 正文阅读

[大数据]Go--Redis快速入门指南

Go—Redis

一、Redis基本介绍、安装及原理

1. 基本介绍:

①Redis是NoSQL数据库(非关系型数据库)💨官网

②Redis(Remote Dlctionary Server),意即远程字典服务器,单机能达到15w qps,适合做缓存,也可以持久化。

③Redis是高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也成为数据结构服务器

2. Redis安装

直接进入官网下载最新版本,至充足磁盘位置处,然后即可使用Redis了。

为了使用方便先可以为Redis包配置系统路径,这样cmd可以实现不在Redis目录下,启动Redis服务,然后再将Redis服务注册为windows的系统服务即可使用。

3. Redis的原理

1. 原理图

Redis默认有16个数据库,初始默认使用0号库,编号是0…15,可以使用select关键字切换数据库编号,但是每个数据的数据互不影响。
Redis原理图

2. Redis五大数据类型

String(字符串)、Hash(哈希)、List(列表)、Set(集合)、zset(sorted set:有序集合)。

二、Redis的基本使用

1. 原生Redis命令使用详解

①String

  • string介绍

    string是Redis最基本的数据类型,一个key对应一个value。string类型是二进制安全的。除普通字符外,也可以存放图片等数据。Redis里字符串value最大时512M

  • string-crud

    • set[如果存在就相当于修改,不存在就就是添加]/get/del

    • mset[同时设置一个或多个key-value对]

    • mget[同时获取多个key-value]

    • 演示
      String-CRUD1string-CRUD2

②Hash

  • Hash的基本介绍

    Redis Hash 是一个string类型的field和value的映射表,Hash特别适合储存对象

  • Hash-crud

    • hset/hget/hgetall/hdel

    • hmset/hmget/hlen[统计hash有多少个元素]/hexists key feild[查看哈希表key里,定域field是否存在]

    • 演示
      hash-CRUD1
      hash-CRUD2

③List

  • List基本介绍

    列表是最简单的字符串列表,按照插入顺序排序。可以在头部或尾部添加元素。

    List本质是个链表,是有序的,元素的值可以重复。

    如果List数据全移除,,对应的键也会消失,或者直接删除列表名

  • List-crud

    • lpush/rpush/lrange/lpop/rpop/del/llen key

      lpush:表示从列表头部依次添加一个或多个元素

      rpush:表示从列表尾部依次一个或多个添加元素

      lrange:表示遍历列表,index从0开始,-1表示最后一个元素,-2表示倒数第二个元素,依次类推…

      lpop:从左边取出一个元素,并从列表删除

      rpop:从右边取出一个元素,并从列表删除

      del:删除

    • 演示
      list-CRUD1list-CRUD2

④Set

  • Set基本介绍

    • Redis的Set是string类型的无序集合。
    • 底层是HashTable数据结构,Set存放很多字符串元素,并且是无序的,不能有重复
  • Set-crud

    • sadd/smembers/sismember/srem[删除指定值]
    • 演示
      set-CRUD

更多Redis命令

2. go-redis使用

①go连接Redis

//initRedisClient 初始化redis连接
func initRedisClient() (err error) {
	rds = redis.NewClient(&redis.Options{
		DB:       0,//选择0-15号redis数据库,
		Addr:     "localhost:6379",//Redis服务监听的端口号
		Password: "",
	})
	result, err := rds.Ping().Result()
	if err != nil {
		return err
	}
	fmt.Println(result)
	return nil
}

②go操作Redis

//example1 演示string类型的set/get的用法
func example1(addData interface{}) (err error) {
	err = rds.Set("score", addData, 0).Err()
	if err != nil {
		return err
	}
	result, err := rds.Get("score").Result()
	if err != nil {
		return err
	}
	fmt.Println("添加数据:",result)
	return nil
}
//example2 演示zset(有序集合)的相关用法
func example2() (err error) {
	//zset的key
	zset:= "scoreRank"
	//ZAdd添加多个数据
	scores := []redis.Z{
		redis.Z{
			Score: 91,
			Member: "刘海斌",
		},
		redis.Z{
			Score: 99,
			Member: "包文杰",
		},
		redis.Z{
			Score: 90,
			Member: "王铁霖",
		},
		redis.Z{
			Score: 97,
			Member: "牟国柱",
		},
	}
	fmt.Println(scores)
	result1, err := rds.ZAdd(zset, scores...).Result()
	if err != nil {
		fmt.Println(err)
		return err
	}
	fmt.Println("zadd:",result1)
	//修改分数,在原地分数基础上添加
	result2, err := rds.ZIncrBy(zset, 1, "包文杰").Result()
	if err != nil {
		return err
	}
	fmt.Println("成功修改:",result2)
	//取分数最高的三个
	result3, err := rds.ZRevRangeWithScores(zset,0,2).Result()
	if err != nil {
		return err
	}
	fmt.Println("分数最高的三个:",result3)
	//取分数最低的三个
	result4, err := rds.ZRangeWithScores(zset,0,2).Result()
	if err != nil {
		return err
	}
	fmt.Println("分数最低的三个:",result4)
	//取95~100分的数据
	zRangeBy := redis.ZRangeBy{
		Min: "95",
		Max: "100",
	}
	result5, err := rds.ZRangeByScoreWithScores(zset, zRangeBy).Result()
	if err != nil {
		return err
	}
	fmt.Println("95~100::",result5)
	//rds.ZRevRangeByScore(zset,zRangeBy)
	return nil
}
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:30:42  更:2021-12-04 13:31:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:46:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码