美文网首页
【Redis】简单使用

【Redis】简单使用

作者: 冉小妹Ran | 来源:发表于2020-03-18 14:56 被阅读0次

一个练手的小项目用到了redis数据库,以前没有接触过,大概看了一下教程,在这里做个简单的使用笔记。

文章目录

  • Redis相关简介
    1.Redis是什么
    2.安装Redis
    3.启动Redis
    4.Redis数据类型
  • Go操作redis

Redis相关简介

Redis是什么

一个高性能的key-value数据库。

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

安装Redis

官网下载msi文件安装,一直下一步直至安装成功。

启动Redis

Redis安装路径下,redis-server.exe是Redis的服务端,redis-cli.exe是Redis的客户端,双击启动即可。


服务端启动

Redis数据类型

5种:string(字符串), hash(哈希), list(列表), set(集合), zset(sorted set,有序集合)

String

SET key value  //设置指定 key 的值 
GET key  //获取指定 key 的值。 
image.png

Hash

HGET key field  //获取存储在哈希表中指定字段的值。
HGETALL key  //获取在哈希表中指定 key 的所有字段和值 
HMSET key field1 value1 [field2 value2 ]  //同时将多个 field-value (域-值)对设置到哈希表 key 中。
image.png

List

一个简单列表,按照插入顺序排序。

LPUSH key value1 [value2] //将一个或多个值插入到列表头部
LRANGE key start stop //获取列表指定范围内的元素
image.png

Set

set和list的区别,list有序,set无序。
即Set是个无序集合,且成员唯一。

SADD key member1 [member2] //向集合添加一个或多个成员
SMEMBERS key //返回集合中的所有成员
image.png

Zset

Zset和Set类似,只是比set多了一个score字段,score字段可以重复,member不可以重复。

ZADD key score1 member1 [score2 member2] //向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZRANGE key start stop [WITHSCORES] //通过索引区间返回有序集合指定区间内的成员
image.png

Go操作Redis

Golang操作Redis有两种方式。

  • 方式一:使用conn.Do(commandName string, args ...interface{})方法,执行相应的操作。
    代码如下:
package main

import (
    "fmt"
    "log"

    "github.com/gomodule/redigo/redis"
)

func GetConn() redis.Conn {
    conn, err := redis.Dial("tcp", fmt.Sprintf("%s:%d", "127.0.0.1", 6379))

    if err != nil {
        log.Println("connect redis error", err)
        return nil
    }

    return conn
}

func main() {
    conn := GetConn()
    if conn == nil {
        log.Println("conn is nil")
    }
    defer conn.Close()

    _, err := conn.Do("SET", "a", "b")
    if err != nil {
        log.Println("set error")
    }
    result, err := redis.String(conn.Do("GET", "a"))
    if err != nil {
        log.Println("get error")
    }
    fmt.Println(result)
}
  • 方式二:使用pipeline。pipeline可以一次性发送多条执行命令,并批量返回结果。pipeline底层实现方式是队列,FIFO(First in first out,先进先出)可以保证执行的顺序。
// 往队列中添加指令
Send(commandName string, args ...interface{}) error
// 一次性发送指令到服务端
Flush() error
// 接收服务端返回的数据
Receive() (reply interface{}, err error)

代码如下:

package main

import (
    "fmt"
    "log"

    "github.com/gomodule/redigo/redis"
)

func GetConn() redis.Conn {
    conn, err := redis.Dial("tcp", fmt.Sprintf("%s:%d", "127.0.0.1", 6379))

    if err != nil {
        log.Println("connect redis error", err)
        return nil
    }

    return conn
}

func main() {
    conn := GetConn()
    if conn == nil {
        log.Println("conn is nil")
    }
    defer conn.Close()

    conn.Send("SET", "fruit", "apple")
    conn.Send("SET", "animal", "dog")
    conn.Send("GET", "fruit")
    conn.Flush()
    for i := 0; i < 3; i++ {
        result, err := conn.Receive()
        if err != nil {
            log.Println("pipeline error")
        }
        fmt.Println(redis.String(result, err))
    }
}

相关文章

  • 基于redis、fastapi、websokcet 实现的客服聊

    说明 使用redis存储消息,代码简单,自行阅读参考redis 使用异步库 aredis

  • Redis一致性hash算法

    一、Redis集群的使用 我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单...

  • redis使用

    Redis的使用 一、Redis下载 redis的使用很简单,首先需要下载redis,在本机上或者是在远程服务器上...

  • Docker | redis集群部署实战

    前面已经简单熟悉过redis的下载安装使用,今天接着部署redis集群(cluster),简单体会一下redis集...

  • redis简单使用

    set List Hashes 无序集合 有序集合

  • redis简单使用

    redis 默认16个库,编号 0~15,默认为0 SELECT 0选择第0个库,key * 查看改库里的键值 r...

  • redis简单使用

    title: redis简单使用date: 2018-03-07 13:57:10tags: [python,re...

  • redis简单使用

    一、安装 二、启动 三、客户端访问 四、关闭服务器

  • 【Redis】简单使用

    一个练手的小项目用到了redis数据库,以前没有接触过,大概看了一下教程,在这里做个简单的使用笔记。 文章目录Re...

  • Redis简单使用

    Redis 简介 概念 基于键值对key-value的数据库,value可以为sting、hash、list、se...

网友评论

      本文标题:【Redis】简单使用

      本文链接:https://www.haomeiwen.com/subject/uwiqyhtx.html