跳至主要內容

Redis速查(不包含基础)

大约 6 分钟约 1740 字

我的Redis装在本地虚拟机中,因此我需要先打开虚拟机,然后执行如下命令启动Redis。

cd /home/redis
./bin/redis-server ./conf/redis.conf

随后使用另一个终端,执行如下命令连接redis。

redis-6.2.0/src/redis-cli --raw

当左边变为127.0.0.1:6379时就代表安装成功了。

注:此笔记中,所有关键字都以大写字母表示,标识符及常量用小写字母表示。

字符串类型

  • SET key value:赋值。

  • GET key:取值。

运行结果
运行结果
  • INCR key:递增数字。
运行结果
运行结果
  • INCRBY key increment:增加指定的整数。
运行结果
运行结果
  • DECR key:减少1。
  • DECRBY key decrement:减少指定的整数。
运行结果
运行结果
  • INCRBYFLOAT key increment:增加指定的浮点数。

  • APPEND key value:向末尾追加值。

运行结果
运行结果
  • STRLEN key:获取字符串长度。
运行结果
运行结果
  • MGET key [key ...]:查看多组键的值。

  • MSET key value [key value ...]:同时设置多个键的值。

运行结果
运行结果
  • EXISTS key [key ...]:查看键是否存在。
运行结果
运行结果
  • DEL key [key ...]:删除键。
运行结果
运行结果

哈希类型

  • HSET key field value:赋值。
  • HGET key field:取值。
  • HMSET key field value [field value ...]:给多个字段赋值。
  • HMGET key field [field ...]:取多个字段的值。
  • HGETALL key:获取所有字段和它们的值。
运行结果
运行结果
  • HEXISTS key field:判断字段是否存在。
  • HSETNX key field value:若字段不存在则赋值。
运行结果
运行结果
  • HINCRBY key value increment:增加数字。
  • HDEL key field [field ...]:删除字段。
运行结果
运行结果
  • HKEYS key:只获取字段名。
  • HVALS key:只获取字段值。
运行结果
运行结果
  • HLEN key:获取字段数量。
运行结果
运行结果

列表类型

  • LPUSH key value [value ...]:向列表左边添加元素。
  • RPUSH key value [value ...]:向列表右边添加元素。
运行结果
运行结果
  • LPOP key:从列表左边获取元素并删除。
  • RPOP key:从列表右边获取元素并删除。
运行结果
运行结果
  • LLEN key:获取列表中元素的个数。
运行结果
运行结果
  • LRANGE key start stop:获取列表片段。start和stop皆为索引,和Python的列表切片类似。
运行结果
运行结果
  • LREM key count value:删除列表中指定的值。若count大于0,则从左边开始删除count个值为value的元素。若count小于0则从右边开始删除。若count等于0则删除所有值为value的元素。
运行结果
运行结果
  • LINDEX key index:获取指定索引的元素值。
  • LSET key index value:设置指定索引的元素值。
运行结果
运行结果
  • LTRIM key start end:只保留列表指定片段。
  • LINSERT key BEFORE|AFTER pivot value:从左到右查找值为pivot的元素,并根据第三个参数在元素前后插入值为value的元素。
运行结果
运行结果
  • RPOPLPUSH source destination:将元素从一个列表转到另一个列表。

集合类型

  • SADD key member [member ...]:添加元素。
  • SREM key member [member ...]:删除元素。
运行结果
运行结果
  • SMEMBERS key:获取集合中所有元素。

  • SISMEMBER key:判断元素是否在集合中。

运行结果
运行结果
  • SDIFF key [key ...]:集合间差集运算。
  • SINTER key [key ...]:集合间交集运算。
  • SUNION key [key ...]:集合间并集运算。
运行结果
运行结果
  • SCARD key:获取集合中元素个数。

  • SDIFFSTORE destination key [key ...]:进行差集运算并存储结果。

  • SINTERSTORE destination key [key ...]:进行交集运算并存储结果。

  • SUNIONSTORE destination key [key ...]:进行并集运算并存储结果。

  • SRANDMEMBER key [count]:随机获取集合中的元素。

  • SPOP key:从集合中弹出一个元素。

有序集合

  • ZADD key score member [score member ...]:添加元素。
运行结果
运行结果
  • ZSCORE key member:获取元素的分数。
运行结果
运行结果
  • ZRANGE key start stop [WITHSCORES]:按照分数从小到大返回范围内元素。
  • ZREVRANGE key start stop [WITHSCORES]:按照分数从大到小返回范围内元素。
运行结果
运行结果
  • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 按照元素从小到大的顺序返回分数在min和max之间的元素。
运行结果
运行结果
  • ZINCRBY key increment member:增加一个元素的分数。
  • ZCARD:获得集合中元素的数量。
  • ZCOUNT key min max:获得指定分数范围内的元素个数。
运行结果
运行结果
  • ZREM key member [member ...]:删除一个或多个元素。

  • ZREMRANGEBYRANK key start stop:按照排名范围删除元素。

  • ZREMRANGEBYSCORE:删除分数范围命令内的元素。

  • ZRANK key member:获得元素的排名(从小到大)。

  • ZREVRANK key member:获得元素的排名(从大到小)。

  • ZINTERSCORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGREEGATE SUM|MIN|MAX]:计算多个有序集合的交集并将结果存放在destination中。AGREEGATE参数用来指定destination中键的分数。其中SUM为每个参与计算的集合中该元素分数和,MIN为最小值,MAX为最大值。

流类型

  • XADD key [MAXLEN [=|~] threshold] *|ID field value [field value]:增加条目。
运行结果
运行结果
  • XRANGE key start end [COUNT count]:根据ID范围来查询条目。
运行结果
运行结果
  • XDEL key ID [ID ...]:删除指定元素。
  • XTRIM key MAXLEN [=|~] threshold:裁剪流。
  • XLEN key:查询流的长度。
  • XREVRANGE key end start [COUNT count]:根据反向ID按范围查询条目。

事务

  • MULTI:开启事务。
  • EXEC:提交事务。
  • Redis没有事务回滚功能。
  • WATCH key:监控一个或多个键。若它被修改,则不执行之后的事务。
  • EXPIRE key seconds:设置过期时间,单位是秒钟。
  • TTL key:查看键的过期时间还有多久。
  • PRESIST key:清除键的过期时间,将键设为永久的。
  • PEXPIRE miliseconds:设置键的过期时间,单位是毫秒。
  • PTTL key:查看键的过期时间,单位是毫秒。

排序

  • SORT key:排序列表,将其按照字面值排序;排序有序列表,使其里面的元素按照自身的值排序。
  • SORT key ALPHA:按照字典顺序排序。
  • SORT key BY field [DESC]:按照哈希的某个字段排序。

发布/订阅模式

  • PUBLISH channel message:向某个频道发送消息。
  • SUBSCRIBE channel:订阅某个频道。

使用客户端连接Redis

Python连接Redis

安装

在venv环境中使用pip install redis安装redis-py库。

使用

import redis

redis = redis.StrictRedis('192.168.204.129', decode_responses=True)

print('设置值:', redis.set('key1', 'value'))
print('取值', redis.get('key1'))

print('设置多组键', redis.mset({'key2': 'value2', 'key3': 'value3'}))
print('获取多组值', redis.mget(['key1', 'key2', 'key3']))

print('删除值', redis.delete('key1'))
print('取键', redis.keys('*'))
运行结果
运行结果

Java连接Redis

安装

下载Jedis.jaropen in new window包。

在IDEA中添加为库。

示例

import redis.clients.jedis.Jedis;

import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建Jedis对象,并指定Redis服务器的主机名和端口号
        Jedis jedis = new Jedis("192.168.204.129", 6379);

        // 连接到Redis服务器
        jedis.connect();

        // 执行一些操作
        jedis.set("mykey", "Hello Redis");
        String value = jedis.get("mykey");
        System.out.println(value);

        jedis.mset("key1", "value1", "key2", "value");
        List<String> values = jedis.mget("key1", "key2");

        for (String tmp : values) {
            System.out.println(tmp);
        }

        // 关闭连接
        jedis.close();
    }
}
运行结果
运行结果
上次编辑于:
贡献者: QI