golang从redis中分页获取列表数据

package main

import (
	"fmt"
	"github.com/go-redis/redis"
	"strconv"
)

func main() {
	//redis地址,密码,数据库
	redisc, err := RedisInit("192.168.2.80:6379","123456",12)
	if err != nil {
		fmt.Println(err)
		return
	}

	//添加模拟数据100条
	//datacCount, err := AddData(redisc, 100)
	//if err != nil {
	//	fmt.Println(err)
	//	return
	//}
	//fmt.Printf("成功添加%d条数据", datacCount)

	count, err := redisc.LLen("aticle1").Result()
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(count)

	//每页多少条数据
	pageSize := 10
	//第几页
	page := 5

	start := page * pageSize
	end := start + pageSize - 1

	listData, err := redisc.LRange("aticle1", int64(start), int64(end)).Result()
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println(listData)

}

// 初始化redis连接
func RedisInit(addr, pass string, db int) (*redis.Client, error) {
	redisdb := redis.NewClient(&redis.Options{
		Addr:     addr,
		Password: pass,
		DB:       db,
		PoolSize: 10,
	})
	_, err := redisdb.Ping().Result()
	if err != nil {
		return nil, err
	}
	return redisdb, nil

}

// 添加模拟数据
func AddData(client *redis.Client, n int) (count int64, err error) {
	var dataSlice []string
	for i := 0; i < n; i++ {
		dataSlice = append(dataSlice, strconv.Itoa(i))
	}

	count, err = client.RPush("aticle1", dataSlice).Result()

	return
}
声明: 本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
云原生

IDEA2024激活工具及最新激活码(亲测有效)

2025-1-16 18:15:01

软件应用

2025最新Webstorm激活码亲测可用(资源是从官网购买,仅供学习和交流)

2025-1-14 18:05:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索