当前位置:网站首页>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)
}
边栏推荐
- 使用navicat连接mysql数据库时常报的错误:2003、1698、1251
- Station B collapsed, what would you do if you were the developer in charge that night?
- 向量三重积的等式推导证明
- 适合程序员的输入法
- Camera coordinate system, world coordinate system, pixel coordinate system conversion, and Fov conversion of OPENGLDEFocal Length and Opengl
- 新人误删数据,组长巧用MySQL主从复制延迟挽回损失
- Derivative Operations on Vectors and Derivative Operations on Vector Cross and Dot Products
- Table with tens of millions of data, how to query the fastest?
- MySQL主从复制配置搭建,一步到位
- Calculate the inverse source of the matrix (using the adjoint matrix, a 3x3 matrix)
猜你喜欢

(GGG)JWT

golang : Zap日志整合

Detailed explanation of numpy multidimensional array ndarray

AI可通过X光片识别种族,但没人知道为什么

What are the access modifiers, declaration modifiers, and keywords in C#?Literacy articles

向量叉乘的几何意义及其模的计算

阿里二面:Redis有几种集群方案?我答了4种

numpy 多维数组ndarray的详解

STL source code analysis: conceptual understanding of iterators, and code testing.

Calculate the inverse source of the matrix (using the adjoint matrix, a 3x3 matrix)
随机推荐
How to use Swagger, say goodbye to postman
STL source code analysis: conceptual understanding of iterators, and code testing.
@Bean 与 @Component 用在同一个类上,会怎样?
AI可通过X光片识别种族,但没人知道为什么
go : go gin返回JSON数据
DNS domain name resolution services
限塑令下的新材料——聚乳酸(PLA)
Ali two sides: List several tips for Api interface optimization
UDP和TCP使用同一个端口,可行吗?
Camera coordinate system, world coordinate system, pixel coordinate system conversion, and Fov conversion of OPENGLDEFocal Length and Opengl
不会吧,Log4j 漏洞还没有完全修复?
What are the access modifiers, declaration modifiers, and keywords in C#?Literacy articles
Develop common tool software
ArrayList
Playing script killing with AI: actually more involved than me
export , export default, import complete usage
舒尔补(schur completement)
RAID disk array
Go 结合Gin导出Mysql数据到Excel表格
LVM and disk quotas