my note for redis

redis 基础教程 https://www.runoob.com/redis/redis-sorted-sets.html

其他博文 https://blog.csdn.net/qq_42093488/article/details/82149385

 

redis特点

Redis SET  如果 key 已经存储其他值,就覆写旧值

redis类型

string在单一,list没有判存在,set不如sorted set,map 没有分页

sorted set 使用较多:(1)可以分页(2)可判是否存在,且效率高(3)加上score(可正可倒序)可以当做map用(比如用一个sorted set来存储一个用户收藏的所有文章的id和收藏时间(使用score存时间戳)),弥补map没有分页的缺憾。

map的使用场景是:比如一个用户的昵称、年龄、性别、积分等放在一个map集合中,获取时全部获取。

sorted set 常用:

//判断是否存在.Err() == nil的话就是存在
s.RedisClient.ZRank(utils.GetArticleHotCommentKey(articleID), strconv.FormatInt(commentID, 10)).Err() == nil

s.RedisClient.ZRange(utils.GetArticleHotCommentKey(articleID), int64(offset), int64(offset+limit)).Val()
s.RedisClient.ZRevRange(utils.GetArticleHotCommentKey(articleID), int64(offset), int64(offset+limit)).Val()

s.RedisClient.ZAdd(
   utils.GetUserCollectArticleCollect(userID),
   redis.Z{
      Score:  float64(time.Now().Unix()),
      Member: snStr,
   })


if intCmd := s.RedisClient.ZRem(
	utils.GetUserCollectArticleCollect(userID),
	snStr); intCmd.Val() == 0 {
	return nil
}

常用命令行

info all (介绍https://blog.csdn.net/hunhun1122/article/details/82655884

连接

redis-cli -h XX.XX.2XX.XX -p 16372 -a AXXXX

select 14

keys *-23

更新的场景

以用户头像为例,当用户更换头像时,更新redis的方式有两种:

(1)用户上传头像的时候,db和redis都写入

(2)用户上传头像的时候,只db写入,然后使用redis发布订阅机制,给消费者的redis订阅了的频道发消息,消费者redis消费消息更新自己的缓存

pipline

遍历一连串的redis集合时要用pipline,多次读优化为一次读。

db

概念,及db的规定:https://www.cnblogs.com/oxspirt/p/6529791.html

redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。redis配置文件中下面的参数来控制数据库总数: /etc/redis/redis.conf 文件中,有个配置项 databases = 16 //默认有16个数据库。

select切换db。每个数据库都有属于自己的空间,不必担心之间的key冲突。

redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下。

因此上面的快开启200个实例的场景,可以使用不同的数据库来存储,而不必开启如此那么多的实例。

实例

redis是单进程单线程来运行的(新版支持了多线程),可以在一台系统上以多实例运行。因为redis在数据文件
大于20~30G的时候,效率会降低。所以,多实例来运行会是一个很好的方式。redis运行多实例,需要修改多个端口,多个配置文件,多个文件存储目录。例如:运行2个实例,端口分别为:6379,6380。(转自https://blog.csdn.net/freshair_x/article/details/80822980

linux下搭建、配置

https://www.cnblogs.com/tczeus/p/9042466.html

https://www.cnblogs.com/tczeus/p/9048890.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值