Redis
我的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.jar包。
在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();
}
}
