列表操作命令
存储值
左端存值语法:lpush key value[value…]
lpush list lily sandy
右端存值语法:rpush key value [value …]
rpush list tom kitty
索引存值语法:lset key index value
lset list 3 uto
弹出元素
左端弹出语法:lpop key
lpop list
右端弹出语法:rpop key
rpop list
获取元素个数
语法:llen key
llen list
获取列表元素
两边获取语法:lrange key start stop
lpush users tom kitty land pony jack maddy
lrange users 0 3
// 获取所有
lrange users 0 -1
// 从右端索引
lrange users -3 -1
索引获取语法:lindex key index
lindex users 2
// 从右端获取
lindex users -5
删除元素
根据值删除语法:lrem key count value
// count=0 删除所有
lrem userids 0 111
// count > 0 从左端删除前count个
lrem userids 3 222
// count < 0 从右端删除前count个
lrem userids -3 222
范围删除语法:ltrim key start stop
// 只保留2-4之间的元素
ltrim list 2 4
集合操作命令
存储值
语法:sadd key member [member …]
// 这里有8个值(2个java),只存了7个
sadd langs java php c++ go ruby python kotlin java
获取元素
获取所有元素语法:smembers key
smembers langs
随机获取语法:srandmember langs count
srandmember langs 3
判断集合是否存在元素
语法:sismember key member
sismember langs go
获取集合元素个数
语法:scard key
scard langs
删除集合元素
语法:srem key member [member …]
srem langs ruby kotlin
弹出元素
语法:spop key [count]
spop langs 2
散列操作命令
存放键值
单个语法:hset key field value
hset user name javastack
多个语法:hmset key field value [field value …]
hmset user name javastack age 20 address china
不存在时语法:hsetnx key field value
hsetnx user tall 180
获取字段值
单个语法:hget key field
hget user age
多个语法:hmget key field [field …]
hmget user name age address
获取所有键与值语法:hgetall key
hgetall user
获取所有字段语法:hkeys key
hkeys user
获取所有值语法:hvals key
hvals user
判断字段是否存在
语法:hexists key field
hexists user address
获取字段数量
语法:hlen key
hlen user
递增/减
语法:hincrby key field increment
hincrby user tall -10
删除字段
语法:hdel key field [field …]
hdel user age
有序集合
存储值
语法:zadd key [NX|XX] [CH] [INCR] score member [score member …]
zadd footCounts 16011 tid 20082 huny 2893 nosy
获取元素分数
语法:zscore key member
zscore footCounts tid
获取排名范围排名语法:zrange key start stop [WITHSCORES]
// 获取所有,没有分数
zrange footCounts 0 -1
// 获取所有及分数
zrange footCounts 0 -1 Withscores
获取指定分数范围排名语法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
zrangebyscore footCounts 3000 30000 withscores limit 0 1
增加指定元素分数
语法:zincrby key increment member
zincrby footCounts 2000 tid
获取集合元素个数
语法:zcard key
zcard footCounts
获取指定范围分数个数
语法:zcount key min max
zcount footCounts 2000 20000
删除指定元素
语法:zrem key member [member …]
zrem footCounts huny
获取元素排名
语法:zrank key member
zrank footCounts tid
列表Java操作
import java.util.List;
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
Jedis jedis = new Jedis();
/**
* LPUSH LRANGE LINDEX RPOP LPOP LLEN LREM
*/
// jedis.lpush("color", "black");
// String color = jedis.lindex("color", 4);
// System.out.println(color);
printList(jedis);
// jedis.lpop("color");
// jedis.lpop("color");
// System.out.println(jedis.llen("color"));
jedis.lrem("color", -2, "red");
printList(jedis);
jedis.close();
}
private static void printList(Jedis jedis) {
// 打印列表
System.out.println("------打印列表----------");
List<String> result = jedis.lrange("color", 0, -1);
for (String str : result) {
System.out.println(str);
}
}
}
集合Java操作
import java.util.Set;
import redis.clients.jedis.Jedis;
public class RedisSet {
public static void main(String[] args) {
Jedis jedis = new Jedis();
// jedis.sadd("animal", "elephant","tiger","lion");
// jedis.srem("animal", "tiger");
Set<String> result = jedis.smembers("animal");
System.out.println(result.toString());
boolean isAnimal = jedis.sismember("animal", "dog");
System.out.println(isAnimal);
jedis.close();
}
}