Skip to content

Instantly share code, notes, and snippets.

@rodrigc
Created September 10, 2021 18:22
Show Gist options
  • Save rodrigc/3ab95938240ea0e99e28aa061a07f209 to your computer and use it in GitHub Desktop.
Save rodrigc/3ab95938240ea0e99e28aa061a07f209 to your computer and use it in GitHub Desktop.
package main
import (
"bufio"
"fmt"
"github.com/go-redis/redis"
"os"
"strings"
"time"
)
func RedisNewClient() (*redis.Client, error) {
client := redis.NewClient(&redis.Options{
Addr: "134.122.1.169:6379",
Password: "", // no password set
DB: 0, // use default DB
})
pong, err := client.Ping().Result()
fmt.Println(pong, err)
// Output: PONG <nil>
return client, err
}
func main() {
fmt.Printf("sender or receiver:: ")
reader := bufio.NewReader(os.Stdin)
role, _ := reader.ReadString('\n')
role = strings.Trim(role, "\n")
fmt.Printf("ROLE: %v\n", role)
if role == "sender" {
sender()
} else if role == "receiver" {
receiver()
} else {
panic("Unknown")
}
}
func receiver() {
client, err := RedisNewClient()
if err != nil {
fmt.Printf("%v %v\n", err, client)
os.Exit(1)
}
//counter := 0
for {
key := "MSG"
val2, err := client.Get(key).Result()
if err == redis.Nil {
fmt.Printf("[REDIS] Message with key: %s does not exist", key)
} else if err != nil {
panic(err)
} else {
fmt.Printf("[REDIS] You received message with key: %s, value: %s\n", key, val2)
}
time.Sleep(1 * time.Second)
}
}
func sender() {
client, err := RedisNewClient()
if err != nil {
fmt.Printf("%v %v\n", err, client)
os.Exit(1)
}
fmt.Printf("Enter your Name: ")
reader := bufio.NewReader(os.Stdin)
name, _ := reader.ReadString('\n')
name = strings.Trim(name, "\n")
fmt.Printf("Your name is: %s\n", name)
//counter := 0
for {
fmt.Printf("Enter your message: ")
msg, _ := reader.ReadString('\n')
//fmt.Printf("You send message: %s\n", msg)
key := "MSG"
//counter += 1
sendMsg := fmt.Sprintf("%s: %s", name, msg)
err := client.Set(key, sendMsg, 0).Err()
if err != nil {
panic(err)
}
val2, err := client.Get(key).Result()
if err == redis.Nil {
fmt.Printf("[REDIS] Message with key: %s does not exist", key)
} else if err != nil {
panic(err)
} else {
fmt.Printf("[REDIS] You sent message with key: %s, value: %s\n", key, val2)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment