LLEN
Syntax
LLEN key
- Available since:
- Redis Open Source 1.0.0
- Time complexity:
- O(1)
- ACL categories:
-
@read
,@list
,@fast
,
Returns the length of the list stored at key
.
If key
does not exist, it is interpreted as an empty list and 0
is returned.
An error is returned when the value stored at key
is not a list.
Examples
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LLEN mylist
(integer) 2
Are you tired of using redis-cli? Try Redis Insight - the developer GUI for Redis.
import redis
r = redis.Redis(decode_responses=True)
res1 = r.lpush("mylist", "world")
print(res1) # >>> 1
res2 = r.lpush("mylist", "hello")
print(res2) # >>> 2
res3 = r.lrange("mylist", 0, -1)
print(res3) # >>> [ "hello", "world" ]
res4 = r.rpush("mylist", "one");
print(res4) # >>> 1
res5 = r.rpush("mylist", "two")
print(res5) # >>> 2
res6 = r.rpush("mylist", "three")
print(res6) # >>> 3
res7 = r.lrange('mylist', 0, 0)
print(res7) # >>> [ 'one' ]
res8 = r.lrange('mylist', -3, 2)
print(res8) # >>> [ 'one', 'two', 'three' ]
res9 = r.lrange('mylist', -100, 100)
print(res9) # >>> [ 'one', 'two', 'three' ]
res10 = r.lrange('mylist', 5, 10)
print(res10) # >>> []
res11 = r.lpush("mylist", "World")
print(res11) # >>> 1
res12 = r.lpush("mylist", "Hello")
print(res12) # >>> 2
res13 = r.llen("mylist")
print(res13) # >>> 2
res14 = r.rpush("mylist", "hello")
print(res14) # >>> 1
res15 = r.rpush("mylist", "world")
print(res15) # >>> 2
res16 = r.lrange("mylist", 0, -1)
print(res16) # >>> [ "hello", "world" ]
res17 = r.rpush("mylist", *["one", "two", "three", "four", "five"])
print(res17) # >>> 5
res18 = r.lpop("mylist")
print(res18) # >>> "one"
res19 = r.lpop("mylist", 2)
print(res19) # >>> ['two', 'three']
res17 = r.lrange("mylist", 0, -1)
print(res17) # >>> [ "four", "five" ]
res18 = r.rpush("mylist", *["one", "two", "three", "four", "five"])
print(res18) # >>> 5
res19 = r.rpop("mylist")
print(res19) # >>> "five"
res20 = r.rpop("mylist", 2)
print(res20) # >>> ['four', 'three']
res21 = r.lrange("mylist", 0, -1)
print(res21) # >>> [ "one", "two" ]
import assert from 'node:assert';
import { createClient } from 'redis';
const client = createClient();
await client.connect().catch(console.error);
const res1 = await client.lPush('mylist', 'world');
console.log(res1); // 1
const res2 = await client.lPush('mylist', 'hello');
console.log(res2); // 2
const res3 = await client.lRange('mylist', 0, -1);
console.log(res3); // [ 'hello', 'world' ]
const res4 = await client.rPush('mylist', 'one');
console.log(res4); // 1
const res5 = await client.rPush('mylist', 'two');
console.log(res5); // 2
const res6 = await client.rPush('mylist', 'three');
console.log(res6); // 3
const res7 = await client.lRange('mylist', 0, 0);
console.log(res7); // [ 'one' ]
const res8 = await client.lRange('mylist', -3, 2);
console.log(res8); // [ 'one', 'two', 'three' ]
const res9 = await client.lRange('mylist', -100, 100);
console.log(res9); // [ 'one', 'two', 'three' ]
const res10 = await client.lRange('mylist', 5, 10);
console.log(res10); // []
const res11 = await client.lPush('mylist', 'World');
console.log(res11); // 1
const res12 = await client.lPush('mylist', 'Hello');
console.log(res12); // 2
const res13 = await client.lLen('mylist');
console.log(res13); // 2
const res14 = await client.rPush('mylist', 'hello');
console.log(res14); // 1
const res15 = await client.rPush('mylist', 'world');
console.log(res15); // 2
const res16 = await client.lRange('mylist', 0, -1);
console.log(res16); // [ 'hello', 'world' ]
const res17 = await client.rPush('mylist', ["one", "two", "three", "four", "five"]);
console.log(res17); // 5
const res18 = await client.lPop('mylist');
console.log(res18); // 'one'
const res19 = await client.lPopCount('mylist', 2);
console.log(res19); // [ 'two', 'three' ]
const res20 = await client.lRange('mylist', 0, -1);
console.log(res20); // [ 'four', 'five' ]
const res21 = await client.rPush('mylist', ["one", "two", "three", "four", "five"]);
console.log(res21); // 5
const res22 = await client.rPop('mylist');
console.log(res22); // 'five'
const res23 = await client.rPopCount('mylist', 2);
console.log(res23); // [ 'four', 'three' ]
const res24 = await client.lRange('mylist', 0, -1);
console.log(res24); // [ 'one', 'two' ]
await client.close();
import java.util.List;
import redis.clients.jedis.UnifiedJedis;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CmdsListExample {
public void run() {
UnifiedJedis jedis = new UnifiedJedis("redis://localhost:6379");
long lLenResult1 = jedis.lpush("mylist", "World");
System.out.println(lLenResult1); // >>> 1
long lLenResult2 = jedis.lpush("mylist", "Hello");
System.out.println(lLenResult2); // >>> 2
long lLenResult3 = jedis.llen("mylist");
System.out.println(lLenResult3); // >>> 2
long lPopResult1 = jedis.rpush(
"mylist", "one", "two", "three", "four", "five"
);
System.out.println(lPopResult1); // >>> 5
String lPopResult2 = jedis.lpop("mylist");
System.out.println(lPopResult2); // >>> one
List<String> lPopResult3 = jedis.lpop("mylist", 2);
System.out.println(lPopResult3); // >>> [two, three]
List<String> lPopResult4 = jedis.lrange("mylist", 0, -1);
System.out.println(lPopResult4); // >>> [four, five]
long lPushResult1 = jedis.lpush("mylist", "World");
System.out.println(lPushResult1); // >>> 1
long lPushResult2 = jedis.lpush("mylist", "Hello");
System.out.println(lPushResult2); // >>> 2
List<String> lPushResult3 = jedis.lrange("mylist", 0, -1);
System.out.println(lPushResult3);
// >>> [Hello, World]
long lRangeResult1 = jedis.rpush("mylist", "one", "two", "three");
System.out.println(lRangeResult1); // >>> 3
List<String> lRangeResult2 = jedis.lrange("mylist", 0, 0);
System.out.println(lRangeResult2); // >>> [one]
List<String> lRangeResult3 = jedis.lrange("mylist", -3, 2);
System.out.println(lRangeResult3); // >>> [one, two, three]
List<String> lRangeResult4 = jedis.lrange("mylist", -100, 100);
System.out.println(lRangeResult4); // >>> [one, two, three]
List<String> lRangeResult5 = jedis.lrange("mylist", 5, 10);
System.out.println(lRangeResult5); // >>> []
long rPopResult1 = jedis.rpush(
"mylist", "one", "two", "three", "four", "five"
);
System.out.println(rPopResult1); // >>> 5
String rPopResult2 = jedis.rpop("mylist");
System.out.println(rPopResult2); // >>> five
List<String> rPopResult3 = jedis.rpop("mylist", 2);
System.out.println(rPopResult3); // >>> [four, three]
List<String> rPopResult4 = jedis.lrange("mylist", 0, -1);
System.out.println(rPopResult4); // >>> [one, two]
long rPushResult1 = jedis.rpush("mylist", "hello");
System.out.println(rPushResult1); // >>> 1
long rPushResult2 = jedis.rpush("mylist", "world");
System.out.println(rPushResult2); // >>> 2
List<String> rPushResult3 = jedis.lrange("mylist", 0, -1);
System.out.println(rPushResult3); // >>> [hello, world]
jedis.close();
}
}
package io.redis.examples.async;
import io.lettuce.core.*;
import io.lettuce.core.api.async.RedisAsyncCommands;
import io.lettuce.core.api.StatefulRedisConnection;
import java.util.concurrent.CompletableFuture;
public class CmdsListExample {
public void run() {
RedisClient redisClient = RedisClient.create("redis://localhost:6379");
try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {
RedisAsyncCommands<String, String> asyncCommands = connection.async();
CompletableFuture<Void> lpush = asyncCommands.lpush("mylist", "world").thenCompose(res1 -> {
System.out.println(res1); // >>> 1
return asyncCommands.lpush("mylist", "hello");
}).thenCompose(res2 -> {
System.out.println(res2); // >>> 2
return asyncCommands.lrange("mylist", 0, -1);
})
.thenAccept(res3 -> System.out.println(res3)) // >>> [hello, world]
.toCompletableFuture();
lpush.join();
CompletableFuture<Void> lrange = asyncCommands.rpush("mylist", "one").thenCompose(res4 -> {
System.out.println(res4); // >>> 1
return asyncCommands.rpush("mylist", "two");
}).thenCompose(res5 -> {
System.out.println(res5); // >>> 2
return asyncCommands.rpush("mylist", "three");
}).thenCompose(res6 -> {
System.out.println(res6); // >>> 3
return asyncCommands.lrange("mylist", 0, 0);
}).thenCompose(res7 -> {
System.out.println(res7); // >>> [one]
return asyncCommands.lrange("mylist", -3, 2);
}).thenCompose(res8 -> {
System.out.println(res8); // >>> [one, two, three]
return asyncCommands.lrange("mylist", -100, 100);
}).thenCompose(res9 -> {
System.out.println(res9); // >>> [one, two, three]
return asyncCommands.lrange("mylist", 5, 10);
})
.thenAccept(res10 -> System.out.println(res10)) // >>> []
.toCompletableFuture();
lrange.join();
CompletableFuture<Void> llen = asyncCommands.lpush("mylist", "World").thenCompose(res11 -> {
System.out.println(res11); // >>> 1
return asyncCommands.lpush("mylist", "Hello");
}).thenCompose(res12 -> {
System.out.println(res12); // >>> 2
return asyncCommands.llen("mylist");
})
.thenAccept(res13 -> System.out.println(res13)) // >>> 2
.toCompletableFuture();
llen.join();
CompletableFuture<Void> rpush = asyncCommands.rpush("mylist", "hello").thenCompose(res14 -> {
System.out.println(res14); // >>> 1
return asyncCommands.rpush("mylist", "world");
}).thenCompose(res15 -> {
System.out.println(res15); // >>> 2
return asyncCommands.lrange("mylist", 0, -1);
})
.thenAccept(res16 -> System.out.println(res16)) // >>> [hello, world]
.toCompletableFuture();
rpush.join();
CompletableFuture<Void> lpop = asyncCommands.rpush("mylist", "one", "two", "three", "four", "five")
.thenCompose(res17 -> {
System.out.println(res17); // >>> 5
return asyncCommands.lpop("mylist");
}).thenCompose(res18 -> {
System.out.println(res18); // >>> one
return asyncCommands.lpop("mylist", 2);
}).thenCompose(res19 -> {
System.out.println(res19); // >>> [two, three]
return asyncCommands.lrange("mylist", 0, -1);
})
.thenAccept(res17_final -> System.out.println(res17_final)) // >>> [four, five]
.toCompletableFuture();
lpop.join();
CompletableFuture<Void> rpop = asyncCommands.rpush("mylist", "one", "two", "three", "four", "five")
.thenCompose(res18 -> {
System.out.println(res18); // >>> 5
return asyncCommands.rpop("mylist");
}).thenCompose(res19 -> {
System.out.println(res19); // >>> five
return asyncCommands.rpop("mylist", 2);
}).thenCompose(res20 -> {
System.out.println(res20); // >>> [four, three]
return asyncCommands.lrange("mylist", 0, -1);
})
.thenAccept(res21 -> System.out.println(res21)) // >>> [one, two]
.toCompletableFuture();
rpop.join();
} finally {
redisClient.shutdown();
}
}
}
package io.redis.examples.reactive;
import io.lettuce.core.*;
import io.lettuce.core.api.reactive.RedisReactiveCommands;
import io.lettuce.core.api.StatefulRedisConnection;
import reactor.core.publisher.Mono;
public class CmdsListExample {
public void run() {
RedisClient redisClient = RedisClient.create("redis://localhost:6379");
try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {
RedisReactiveCommands<String, String> reactiveCommands = connection.reactive();
Mono<Void> lpush = reactiveCommands.lpush("mylist", "world").doOnNext(res1 -> {
System.out.println(res1); // >>> 1
}).flatMap(res1 -> reactiveCommands.lpush("mylist", "hello")).doOnNext(res2 -> {
System.out.println(res2); // >>> 2
}).flatMap(res2 -> reactiveCommands.lrange("mylist", 0, -1).collectList()).doOnNext(res3 -> {
System.out.println(res3); // >>> [hello, world]
}).then();
lpush.block();
reactiveCommands.del("mylist").block();
Mono<Void> lrange = reactiveCommands.rpush("mylist", "one").doOnNext(res4 -> {
System.out.println(res4); // >>> 1
}).flatMap(res4 -> reactiveCommands.rpush("mylist", "two")).doOnNext(res5 -> {
System.out.println(res5); // >>> 2
}).flatMap(res5 -> reactiveCommands.rpush("mylist", "three")).doOnNext(res6 -> {
System.out.println(res6); // >>> 3
}).flatMap(res6 -> reactiveCommands.lrange("mylist", 0, 0).collectList()).doOnNext(res7 -> {
System.out.println(res7); // >>> [one]
}).flatMap(res7 -> reactiveCommands.lrange("mylist", -3, 2).collectList()).doOnNext(res8 -> {
System.out.println(res8); // >>> [one, two, three]
}).flatMap(res8 -> reactiveCommands.lrange("mylist", -100, 100).collectList()).doOnNext(res9 -> {
System.out.println(res9); // >>> [one, two, three]
}).flatMap(res9 -> reactiveCommands.lrange("mylist", 5, 10).collectList()).doOnNext(res10 -> {
System.out.println(res10); // >>> []
}).then();
lrange.block();
reactiveCommands.del("mylist").block();
Mono<Void> llen = reactiveCommands.lpush("mylist", "World").doOnNext(res11 -> {
System.out.println(res11); // >>> 1
}).flatMap(res11 -> reactiveCommands.lpush("mylist", "Hello")).doOnNext(res12 -> {
System.out.println(res12); // >>> 2
}).flatMap(res12 -> reactiveCommands.llen("mylist")).doOnNext(res13 -> {
System.out.println(res13); // >>> 2
}).then();
llen.block();
reactiveCommands.del("mylist").block();
Mono<Void> rpush = reactiveCommands.rpush("mylist", "hello").doOnNext(res14 -> {
System.out.println(res14); // >>> 1
}).flatMap(res14 -> reactiveCommands.rpush("mylist", "world")).doOnNext(res15 -> {
System.out.println(res15); // >>> 2
}).flatMap(res15 -> reactiveCommands.lrange("mylist", 0, -1).collectList()).doOnNext(res16 -> {
System.out.println(res16); // >>> [hello, world]
}).then();
rpush.block();
reactiveCommands.del("mylist").block();
Mono<Void> lpop = reactiveCommands.rpush("mylist", "one", "two", "three", "four", "five").doOnNext(res17 -> {
System.out.println(res17); // >>> 5
}).flatMap(res17 -> reactiveCommands.lpop("mylist")).doOnNext(res18 -> {
System.out.println(res18); // >>> one
}).flatMap(res18 -> reactiveCommands.lpop("mylist", 2).collectList()).doOnNext(res19 -> {
System.out.println(res19); // >>> [two, three]
}).flatMap(res19 -> reactiveCommands.lrange("mylist", 0, -1).collectList()).doOnNext(res17_final -> {
System.out.println(res17_final); // >>> [four, five]
}).then();
lpop.block();
reactiveCommands.del("mylist").block();
Mono<Void> rpop = reactiveCommands.rpush("mylist", "one", "two", "three", "four", "five").doOnNext(res18 -> {
System.out.println(res18); // >>> 5
}).flatMap(res18 -> reactiveCommands.rpop("mylist")).doOnNext(res19 -> {
System.out.println(res19); // >>> five
}).flatMap(res19 -> reactiveCommands.rpop("mylist", 2).collectList()).doOnNext(res20 -> {
System.out.println(res20); // >>> [four, three]
}).flatMap(res20 -> reactiveCommands.lrange("mylist", 0, -1).collectList()).doOnNext(res21 -> {
System.out.println(res21); // >>> [one, two]
}).then();
rpop.block();
reactiveCommands.del("mylist").block();
} finally {
redisClient.shutdown();
}
}
}
package example_commands_test
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
func ExampleClient_cmd_llen() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password docs
DB: 0, // use default DB
})
lPushResult1, err := rdb.LPush(ctx, "mylist", "World").Result()
if err != nil {
panic(err)
}
fmt.Println(lPushResult1) // >>> 1
lPushResult2, err := rdb.LPush(ctx, "mylist", "Hello").Result()
if err != nil {
panic(err)
}
fmt.Println(lPushResult2) // >>> 2
lLenResult, err := rdb.LLen(ctx, "mylist").Result()
if err != nil {
panic(err)
}
fmt.Println(lLenResult) // >>> 2
}
func ExampleClient_cmd_lpop() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password docs
DB: 0, // use default DB
})
RPushResult, err := rdb.RPush(ctx,
"mylist", "one", "two", "three", "four", "five",
).Result()
if err != nil {
panic(err)
}
fmt.Println(RPushResult) // >>> 5
lPopResult, err := rdb.LPop(ctx, "mylist").Result()
if err != nil {
panic(err)
}
fmt.Println(lPopResult) // >>> one
lPopCountResult, err := rdb.LPopCount(ctx, "mylist", 2).Result()
if err != nil {
panic(err)
}
fmt.Println(lPopCountResult) // >>> [two three]
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult) // >>> [four five]
}
func ExampleClient_cmd_lpush() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password docs
DB: 0, // use default DB
})
lPushResult1, err := rdb.LPush(ctx, "mylist", "World").Result()
if err != nil {
panic(err)
}
fmt.Println(lPushResult1) // >>> 1
lPushResult2, err := rdb.LPush(ctx, "mylist", "Hello").Result()
if err != nil {
panic(err)
}
fmt.Println(lPushResult2) // >>> 2
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult) // >>> [Hello World]
}
func ExampleClient_cmd_lrange() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password docs
DB: 0, // use default DB
})
RPushResult, err := rdb.RPush(ctx, "mylist",
"one", "two", "three",
).Result()
if err != nil {
panic(err)
}
fmt.Println(RPushResult) // >>> 3
lRangeResult1, err := rdb.LRange(ctx, "mylist", 0, 0).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult1) // >>> [one]
lRangeResult2, err := rdb.LRange(ctx, "mylist", -3, 2).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult2) // >>> [one two three]
lRangeResult3, err := rdb.LRange(ctx, "mylist", -100, 100).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult3) // >>> [one two three]
lRangeResult4, err := rdb.LRange(ctx, "mylist", 5, 10).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult4) // >>> []
}
func ExampleClient_cmd_rpop() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password docs
DB: 0, // use default DB
})
rPushResult, err := rdb.RPush(ctx, "mylist",
"one", "two", "three", "four", "five",
).Result()
if err != nil {
panic(err)
}
fmt.Println(rPushResult) // >>> 5
rPopResult, err := rdb.RPop(ctx, "mylist").Result()
if err != nil {
panic(err)
}
fmt.Println(rPopResult) // >>> five
rPopCountResult, err := rdb.RPopCount(ctx, "mylist", 2).Result()
if err != nil {
panic(err)
}
fmt.Println(rPopCountResult) // >>> [four three]
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult) // >>> [one two]
}
func ExampleClient_cmd_rpush() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password docs
DB: 0, // use default DB
})
rPushResult1, err := rdb.RPush(ctx, "mylist", "Hello").Result()
if err != nil {
panic(err)
}
fmt.Println(rPushResult1) // >>> 1
rPushResult2, err := rdb.RPush(ctx, "mylist", "World").Result()
if err != nil {
panic(err)
}
fmt.Println(rPushResult2) // >>> 2
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
if err != nil {
panic(err)
}
fmt.Println(lRangeResult) // >>> [Hello World]
}
using NRedisStack.Tests;
using StackExchange.Redis;
public class CmdsListExample
{
public void Run()
{
var muxer = ConnectionMultiplexer.Connect("localhost:6379");
var db = muxer.GetDatabase();
long lLenResult1 = db.ListLeftPush("mylist", "World");
Console.WriteLine(lLenResult1); // >>> 1
long lLenResult2 = db.ListLeftPush("mylist", "Hello");
Console.WriteLine(lLenResult2); // >>> 2
long lLenResult3 = db.ListLength("mylist");
Console.WriteLine(lLenResult3); // >>> 2
// Tests for 'llen' step.
long lPopResult1 = db.ListRightPush("mylist", ["one", "two", "three", "four", "five"]);
Console.WriteLine(lPopResult1); // >>> 5
RedisValue lPopResult2 = db.ListLeftPop("mylist");
Console.WriteLine(lPopResult2); // >>> one
RedisValue[] lPopResult3 = db.ListLeftPop("mylist", 2);
Console.WriteLine($"[{string.Join(", ", lPopResult3)}]");
// >>> [two, three]
RedisValue[] lPopResult4 = db.ListRange("mylist", 0, -1);
Console.WriteLine($"[{string.Join(", ", lPopResult4)}]");
// >>> [four, five]
// Tests for 'lpop' step.
long lPushResult1 = db.ListLeftPush("mylist", "World");
Console.WriteLine(lPushResult1); // >>> 1
long lPushResult2 = db.ListLeftPush("mylist", "Hello");
Console.WriteLine(lPushResult2); // >>> 2
RedisValue[] lPushResult3 = db.ListRange("mylist", 0, -1);
Console.WriteLine($"[{string.Join(", ", lPushResult3)}]");
// >>> [Hello, World]
// Tests for 'lpush' step.
long lRangeResult1 = db.ListRightPush("mylist", ["one", "two", "three"]);
Console.WriteLine(lRangeResult1); // >>> 3
RedisValue[] lRangeResult2 = db.ListRange("mylist", 0, 0);
Console.WriteLine($"[{string.Join(", ", lRangeResult2)}]");
// >>> [one]
RedisValue[] lRangeResult3 = db.ListRange("mylist", -3, 2);
Console.WriteLine($"[{string.Join(", ", lRangeResult3)}]");
// >>> [one, two, three]
RedisValue[] lRangeResult4 = db.ListRange("mylist", -100, 100);
Console.WriteLine($"[{string.Join(", ", lRangeResult4)}]");
// >>> [one, two, three]
RedisValue[] lRangeResult5 = db.ListRange("mylist", 5, 10);
Console.WriteLine($"[{string.Join(", ", lRangeResult5)}]");
// >>> []
// Tests for 'lrange' step.
long rPopResult1 = db.ListRightPush("mylist", ["one", "two", "three", "four", "five"]);
Console.WriteLine(rPopResult1); // >>> 5
RedisValue rPopResult2 = db.ListRightPop("mylist");
Console.WriteLine(rPopResult2); // >>> five
RedisValue[] rPopResult3 = db.ListRightPop("mylist", 2);
Console.WriteLine($"[{string.Join(", ", rPopResult3)}]");
// >>> [four, three]
RedisValue[] rPopResult4 = db.ListRange("mylist", 0, -1);
Console.WriteLine($"[{string.Join(", ", rPopResult4)}]");
// >>> [one, two]
// Tests for 'rpop' step.
long rPushResult1 = db.ListRightPush("mylist", "hello");
Console.WriteLine(rPushResult1); // >>> 1
long rPushResult2 = db.ListRightPush("mylist", "world");
Console.WriteLine(rPushResult2); // >>> 2
RedisValue[] rPushResult3 = db.ListRange("mylist", 0, -1);
Console.WriteLine($"[{string.Join(", ", rPushResult3)}]");
// >>> [hello, world]
// Tests for 'rpush' step.
}
}
<?php
require 'vendor/autoload.php';
use Predis\Client as PredisClient;
class CmdListTest
{
public function testCmdList() {
$r = new PredisClient([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '',
'database' => 0,
]);
$res1 = $r->lpush('mylist', 'world');
echo $res1 . PHP_EOL;
// >>> 1
$res2 = $r->lpush('mylist', 'hello');
echo $res2 . PHP_EOL;
// >>> 2
$res3 = $r->lrange('mylist', 0, -1);
echo json_encode($res3) . PHP_EOL;
// >>> ["hello","world"]
$res4 = $r->rpush('mylist', 'one');
echo $res4 . PHP_EOL;
// >>> 1
$res5 = $r->rpush('mylist', 'two');
echo $res5 . PHP_EOL;
// >>> 2
$res6 = $r->rpush('mylist', 'three');
echo $res6 . PHP_EOL;
// >>> 3
$res7 = $r->lrange('mylist', 0, 0);
echo json_encode($res7) . PHP_EOL;
// >>> ["one"]
$res8 = $r->lrange('mylist', -3, 2);
echo json_encode($res8) . PHP_EOL;
// >>> ["one","two","three"]
$res9 = $r->lrange('mylist', -100, 100);
echo json_encode($res9) . PHP_EOL;
// >>> ["one","two","three"]
$res10 = $r->lrange('mylist', 5, 10);
echo json_encode($res10) . PHP_EOL;
// >>> []
$res11 = $r->lpush('mylist', 'World');
echo $res11 . PHP_EOL;
// >>> 1
$res12 = $r->lpush('mylist', 'Hello');
echo $res12 . PHP_EOL;
// >>> 2
$res13 = $r->llen('mylist');
echo $res13 . PHP_EOL;
// >>> 2
$res14 = $r->rpush('mylist', 'hello');
echo $res14 . PHP_EOL;
// >>> 1
$res15 = $r->rpush('mylist', 'world');
echo $res15 . PHP_EOL;
// >>> 2
$res16 = $r->lrange('mylist', 0, -1);
echo json_encode($res16) . PHP_EOL;
// >>> ["hello","world"]
$res17 = $r->rpush('mylist', 'one', 'two', 'three', 'four', 'five');
echo $res17 . PHP_EOL;
// >>> 5
$res18 = $r->lpop('mylist');
echo $res18 . PHP_EOL;
// >>> one
$res19 = $r->lpop('mylist', 2);
echo json_encode($res19) . PHP_EOL;
// >>> ["two","three"]
$res20 = $r->lrange('mylist', 0, -1);
echo json_encode($res20) . PHP_EOL;
// >>> ["four","five"]
$res21 = $r->rpush('mylist', 'one', 'two', 'three', 'four', 'five');
echo $res21 . PHP_EOL;
// >>> 5
$res22 = $r->rpop('mylist');
echo $res22 . PHP_EOL;
// >>> five
$res23 = $r->rpop('mylist', 2);
echo json_encode($res23) . PHP_EOL;
// >>> ["four","three"]
$res24 = $r->lrange('mylist', 0, -1);
echo json_encode($res24) . PHP_EOL;
// >>> ["one","two"]
}
}
Give these commands a try in the interactive console:
Return information
Integer reply: the length of the list.
Integer reply: the length of the list.