Reputation: 27
I want to display list of customers
with pagination
.Structure of DB is as follow:
redis:> hset customerlist username userid (where username:almas userid:1)
redis:> hmset customerlog:1 userid value1 name value2 contactno value3
(where value1:1 , value2: almas sayyad, value3: 8676756556)
I have used hash set
and want to continue with same datatype.
I will be greatfull if any one can give me the solution for this.
Upvotes: 0
Views: 645
Reputation: 49942
TL;DR Paginating a Hash isn't trivial - you should consider using a different data structure that is more suitable for that task, namely the Sorted Set.
Hashes have no order and the only way to sanely iterate their fields is with HSCAN
. However, scanning is unordered, can return duplicates and the number of results from each call varies - building a pagination mechanism on top of that is challenging and inefficient.
You can keep the data, i.e. users, in a Hash, but store the field names in a Sorted Set as well. You can give each user a score to order them or just use lexicographical ordering - either way, you'll be able to paginate with the Sorted Set.
Upvotes: 1