当前位置:网站首页>go : go-redis set操作
go : go-redis set操作
2022-07-30 05:51:00 【行人已】
昨天是一张废弃了的支票,明天是一笔尚未到期的存款,只有今天是你可以支配的现金!!!
具体代码在: https://gitee.com/hjx_RuGuoYunZhiDao/strom-huang-go/blob/master/go_redis
1、初始化redis
参考上一篇:https://blog.csdn.net/bei_FengBoby/article/details/124756296
2、redis-set操作
2.1、 SAdd & SCard (增加 & 获取 )
err := config.InitRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
//----------------------SAdd & SCard
// 添加100到集合中
err = config.RedisDb.SAdd("redis-test", 100).Err()
// 将100,200,300批量添加到集合中 集合的元素不能重复
config.RedisDb.SAdd("redis-test", 100, 200, 300)
//获取集合中元素的个数
size, err := config.RedisDb.SCard("redis-test").Result()
fmt.Print(size)
2.2、SIsMember & SMembers (判断包含 & 获取 )
//SIsMember判断集合中是否包含某个值
flag, err := config.RedisDb.SIsMember("redis-test", "222200").Result()
fmt.Print(flag)
//SMembers 返回集合中所有的值
rts, err := config.RedisDb.SMembers("redis-test").Result()
fmt.Print(rts)
2.3、并集 SInterStore & 交集 SInter & 差集
config.RedisDb.SAdd("big-key", "a", "b", "c")
config.RedisDb.SAdd("smal-key", "a", "b", "d")
//交集:既在big-key中,又在smal-key中
names, err := config.RedisDb.SInter("big-key", "smal-key").Result()
fmt.Print("交集结果是:", names)
//求交集并将交集保存到 destSet 的集合
des, err := config.RedisDb.SInterStore("destSet", "big-key", "smal-key").Result()
fmt.Print("交集结果处理成功条数是:", des)
destset, err := config.RedisDb.SMembers("destSet").Result()
fmt.Print("destSet:", destset)
//差集
str, err := config.RedisDb.SDiff("big-key", "smal-key").Result()
fmt.Print("差集:", str)
2.4、集合删除操作
err = config.RedisDb.SAdd("redis-test", 1, 2, 3, 4, 5, 6, 7, 8, 9).Err()
// 随机返回集合中的一个元素,并且删除这个元素
member1, err := config.RedisDb.SPop("redis-test").Result()
fmt.Println(member1)
res2, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res2)
// 随机返回集合中的4个元素,并且删除这些元素
member2, err := config.RedisDb.SPopN("redis-test", 3).Result()
fmt.Println(member2)
res23, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res23)
// 删除集合 名称为1,2,3的元素,并返回删除的元素个数
member3, err := config.RedisDb.SRem("redis-test", 1, 2, 3).Result()
fmt.Println(member3)
res3, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res3)
2.5、 随机数
//返回几个中随机任意一个
str1, err := config.RedisDb.SRandMember("redis-test").Result()
fmt.Println(str1)
//返回几个中随机任意3个
str2, err := config.RedisDb.SRandMemberN("redis-test", 3).Result()
fmt.Println(str2)
2.6、 SMembersMap & SMove (转换Map & 移动)
//把集合里的元素转换成map的key
map1, err := config.RedisDb.SMembersMap("redis-test").Result()
fmt.Println(map1)
//新增一个key
config.RedisDb.SAdd("redis-test2", "yyyy")
//把redis-test 集合中4 移动到 redis-test2中
ok, err := config.RedisDb.SMove("redis-test", "redis-test2", 4).Result()
//如果没有4就是false
fmt.Println(ok)
str5, err := config.RedisDb.SMembers("redis-test2").Result()
//[4 yyyy]
fmt.Println(str5)
3、具体代码
package main
import (
"fmt"
config "strom-huang-go/go_redis/config"
)
func main() {
err := config.InitRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
//----------------------SAdd & SCard
// 添加100到集合中
err = config.RedisDb.SAdd("redis-test", 100).Err()
// 将100,200,300批量添加到集合中 集合的元素不能重复
config.RedisDb.SAdd("redis-test", 100, 200, 300)
//获取集合中元素的个数
size, err := config.RedisDb.SCard("redis-test").Result()
fmt.Print(size)
//-------------------SIsMember & SMembers示例
//SIsMember判断集合中是否包含某个值
flag, err := config.RedisDb.SIsMember("redis-test", "222200").Result()
fmt.Print(flag)
//SMembers 返回集合中所有的值
rts, err := config.RedisDb.SMembers("redis-test").Result()
fmt.Print(rts)
//-----------------------并集 SInterStore &交集 SInter &差集
config.RedisDb.SAdd("big-key", "a", "b", "c")
config.RedisDb.SAdd("smal-key", "a", "b", "d")
//交集:既在big-key中,又在smal-key中
names, err := config.RedisDb.SInter("big-key", "smal-key").Result()
fmt.Print("交集结果是:", names)
//求交集并将交集保存到 destSet 的集合
des, err := config.RedisDb.SInterStore("destSet", "big-key", "smal-key").Result()
fmt.Print("交集结果处理成功条数是:", des)
destset, err := config.RedisDb.SMembers("destSet").Result()
fmt.Print("destSet:", destset)
//差集
str, err := config.RedisDb.SDiff("big-key", "smal-key").Result()
fmt.Print("差集:", str)
//----------------------- 集合删除操作
err = config.RedisDb.SAdd("redis-test", 1, 2, 3, 4, 5, 6, 7, 8, 9).Err()
// 随机返回集合中的一个元素,并且删除这个元素
member1, err := config.RedisDb.SPop("redis-test").Result()
fmt.Println(member1)
res2, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res2)
// 随机返回集合中的4个元素,并且删除这些元素
member2, err := config.RedisDb.SPopN("redis-test", 3).Result()
fmt.Println(member2)
res23, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res23)
// 删除集合 名称为300,400的元素,并返回删除的元素个数
member3, err := config.RedisDb.SRem("redis-test", 1, 2, 3).Result()
fmt.Println(member3)
res3, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res3)
//----------------随机数
//返回几个中随机任意一个
str1, err := config.RedisDb.SRandMember("redis-test").Result()
fmt.Println(str1)
//返回几个中随机任意3个
str2, err := config.RedisDb.SRandMemberN("redis-test", 3).Result()
fmt.Println(str2)
//--------------------------SMembersMap & SMove示例
//把集合里的元素转换成map的key
map1, err := config.RedisDb.SMembersMap("redis-test").Result()
fmt.Println(map1)
//新增一个key
config.RedisDb.SAdd("redis-test2", "yyyy")
//把redis-test 集合中4 移动到 redis-test2中
ok, err := config.RedisDb.SMove("redis-test", "redis-test2", 4).Result()
//如果没有4就是false
fmt.Println(ok)
str5, err := config.RedisDb.SMembers("redis-test2").Result()
//[4 yyyy]
fmt.Println(str5)
}
边栏推荐
- Polygon 3D(三维平面多边形)的法向量的计算(MeshLab默认的计算)
- (GGG)JWT
- proftpd 配置文件说明
- Upload file -- file type, picture type, document type, video type, compressed package type
- Electron中设置菜单(Menu),主进程向渲染进程共享数据
- debian vsftpd + ssl
- 相机坐标系,世界坐标系,像素坐标系三者转换,以及OPENGLDEFocal Length和Opengl 的 Fov转换
- 千万级数据量的表,怎样最快速度查询?
- 阿里二面:Sentinel vs Hystrix 对比,如何选择?
- Selenium01
猜你喜欢

Is it possible to use the same port for UDP and TCP?

空间顶点到平面的距离计算的证明及其源码

mysql高阶语句(一)

计算矩阵的逆源码(使用伴随矩阵,3×3的矩阵)

Electron之初出茅庐——搭建环境并运行第一个程序

DHCP principle and configuration

让百度地图生成器里的“标注”内容展开--解决方案

图解关系数据库设计思想,这也太形象了

STL源码剖析:bound friend template friend代码测试和理解

What new materials are used in the large aircraft C919?
随机推荐
The CTO said I was not advised to use SELECT *, why is that?
debian 问题
Electron中设置菜单(Menu),主进程向渲染进程共享数据
Equation Derivation Proof of Vector Triple Product
@Bean 与 @Component 用在同一个类上,会怎样?
阿里二面:列出 Api 接口优化的几个技巧
node.js中实现对数据库的链式操作
首届人工智能安全大赛正式启动
向量三重积的等式推导证明
云服务器零基础部署网站(保姆级教程)
Go语学习笔记 - gorm使用 - 数据库配置、表新增 Web框架Gin(七)
上传文件--文件类型大全,图片类型,文档类型,视频类型,压缩包类型
Linx常见目录&文件管理命令&VI编辑器使用 介绍
The introduction of AI meta-learning into neuroscience, the medical effect is expected to improve accurately
Upload file -- file type, picture type, document type, video type, compressed package type
Multithreading basics (multithreaded memory, security, communication, thread pools and blocking queues)
PXE高效批量网络装机
MongoDB - Introduction, Data Types, Basic Statements
MySQL什么时候用表锁,什么时候用行锁?
The calculation of the determinant of the matrix and its source code