当前位置:网站首页>go : go-redis set operations
go : go-redis set operations
2022-07-30 08:02:00 【pedestrians have】
昨天是一张废弃了的支票,明天是一笔尚未到期的存款,只有今天是你可以支配的现金!!!
具体代码在: 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,300Bulk add to collections 集合的元素不能重复
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("The intersection result is:", names)
//求交集并将交集保存到 destSet 的集合
des, err := config.RedisDb.SInterStore("destSet", "big-key", "smal-key").Result()
fmt.Print("The number of successfully processed intersection results is:", 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、Collection delete operation
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的元素,and returns the number of elements removed
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、 随机数
//Returns a random one of several
str1, err := config.RedisDb.SRandMember("redis-test").Result()
fmt.Println(str1)
//Returns random among several3个
str2, err := config.RedisDb.SRandMemberN("redis-test", 3).Result()
fmt.Println(str2)
2.6、 SMembersMap & SMove (转换Map & 移动)
//Convert the elements in the collection to 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,300Bulk add to collections 集合的元素不能重复
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("The intersection result is:", names)
//求交集并将交集保存到 destSet 的集合
des, err := config.RedisDb.SInterStore("destSet", "big-key", "smal-key").Result()
fmt.Print("The number of successfully processed intersection results is:", 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)
//----------------------- Collection delete operation
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的元素,and returns the number of elements removed
member3, err := config.RedisDb.SRem("redis-test", 1, 2, 3).Result()
fmt.Println(member3)
res3, _ := config.RedisDb.SMembers("redis-test").Result()
fmt.Println(res3)
//----------------随机数
//Returns a random one of several
str1, err := config.RedisDb.SRandMember("redis-test").Result()
fmt.Println(str1)
//Returns random among several3个
str2, err := config.RedisDb.SRandMemberN("redis-test", 3).Result()
fmt.Println(str2)
//--------------------------SMembersMap & SMove示例
//Convert the elements in the collection to 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)
}
边栏推荐
- Ali Ermian: How many cluster solutions does Redis have?I answered 4
- The newcomer deleted data by mistake, and the team leader skillfully used MySQL master-slave replication to delay the recovery of losses
- Vue项目通过node连接MySQL数据库并实现增删改查操作
- go : 使用gorm创建数据库记录
- goto语句
- Linx common directory & file management commands & VI editor usage introduction
- 图解关系数据库设计思想,这也太形象了
- Upload file -- file type, picture type, document type, video type, compressed package type
- go : go-redis set操作
- (GGG)JWT
猜你喜欢

从追赶到超越,国产软件大显身手

ETL为什么经常变成ELT甚至LET?

阿里二面:列出 Api 接口优化的几个技巧

Universal js time date format conversion

云服务器零基础部署网站(保姆级教程)

Polygon 3D(三维平面多边形)的法向量的计算(MeshLab默认的计算)

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

Proof of distance calculation from space vertex to plane and its source code

From catching up to surpassing, domestic software shows its talents

RAID disk array
随机推荐
云服务器零基础部署网站(保姆级教程)
Distance calculation from space vertex to straight line and its source code
Camera coordinate system, world coordinate system, pixel coordinate system conversion, and Fov conversion of OPENGLDEFocal Length and Opengl
向量的导数运算和向量叉乘以及点乘的导数运算
bin文件夹下的roslyn文件夹
矩阵的行列式的计算及其源码
this与super
Proof of distance calculation from space vertex to plane and its source code
What happens when @Bean and @Component are used on the same class?
Playing script killing with AI: actually more involved than me
Mobile phone side scroll to page to specify location
go : go-redis list操作
首届人工智能安全大赛正式启动
这个终端连接工具,碾压Xshell
Graphical relational database design ideas, this is too vivid
debian problem
你被MySQL 中的反斜杠 \\坑过吗?
The Society of Mind - Marvin Minsky
Test Development Engineer Growth Diary 015 - Top 20 Test Interview Questions
Rodrigues: vector representation of rotation matrices