python相关配置
pip3 install redis
import redis
redis.StrictRedis('127.0.0.1', 6379, 0, password=123456)
spring相关配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:
data:
redis:
host: 127.0.0.1
port: 6379
password: 123456
timeout: 30000
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
ackage com.kang.redisaction.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Autowired
private RedisConnectionFactory connectionFactory;
@Bean
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
redisTemplate.setEnableTransactionSupport(true);
return redisTemplate;
}
}
键操作
Redis-py键操作
exists(name) 判断键是否存在
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
exists(name) |
判断键是否存在 |
name:键名 |
redis.exists("name") |
是否存在name这个键 |
True |
delete(name) 删除一个键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
delete(name) |
删除一个键 |
name:键名 |
redis.delete("name") |
删除name这个键 |
1 |
type(name) 判断键类型
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
type(name) |
判断键类型 |
name:键名 |
redis.type('name') |
判断name这个键的类型 |
b'string' |
keys(pattern) 获取所有符合规则的键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
keys(pattern) |
获取所有符合规则的键 |
pattern:匹配规则 |
redis.keys('n*') |
获取所有以n为开头的键 |
[b'name'] |
randomkey() 获取随机的一个键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
randomkey() |
获取随机的一个键 |
|
randomkey() |
获取随机的一个键 |
b'name' |
rename(src,dst) 对键重命名
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rename(src,dst) |
对键重命名 |
src:原键名 dst:新键名 |
redis.rename('name','nickname') |
将name重命名为nickname |
True |
dbsize() 获取当前数据库中键的数目
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
dbsize() |
获取当前数据库中键的数目 |
|
dbsize() |
获取当前数据库中键的数目 |
100 |
expire(name,time) 设定键的过期时间,单位为秒
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
expire(name,time) |
设定键的过期时间,单位为秒 |
name:键名 time:秒数 |
redis.expire(‘name’,2) |
将name键的过期时间设置为2秒 |
True |
ttl(name) 获取键的过期时间,单位为秒
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
ttl(name) |
获取键的过期时间,单位为秒 |
name:键名 |
redis.ttl('name') |
获取name这个键的过期时间 |
1(表示永久不过期) |
move(name,db) 将键移动到其他数据库
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
move(name,db) |
将键移动到其他数据库 |
name:键名 db:以往的数据库代号 |
move('name',2) |
将name键移动到2号数据库 |
True |
flushdb() 删除当前所选数据库中的所有键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
flushdb() |
删除当前所选数据库中的所有键 |
|
flushdb() |
删除当前所选数据库中的所有键 |
True |
flushall() 删除所有数据库中的所有键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
flushall() |
删除所有数据库中的所有键 |
|
flushall() |
删除所有数据库中的所有键 |
True |
Redistemplate键操作
hasKey(key) 判断键是否存在
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hasKey(K key) |
判断键是否存在 |
key:键名 |
redisTemplate.opsForValue().getOperations().hasKey("name") |
是否存在name这个键 |
boolean |
delete(key) 删除一个键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
delete(K key) |
删除一个键 |
key:键名 |
redisTemplate.opsForValue().getOperations().delete("name") |
删除name这个键 |
Boolean |
type(key) 获取键类型
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
type(K key) |
获取键类型 |
key:键名 |
redisTemplate.opsForValue().getOperations().type("name") |
获取name这个键的类型 |
String |
keys(pattern) 通过匹配模式获取键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
keys(K pattern) |
通过匹配模式获取键 |
pattern:键模式 |
redisTemplate.opsForValue().getOperations().keys("user:*") |
获取以"user:"开头的键的集合 |
Set |
randomKey() 随机获取键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
randomkey() |
随机获取键 |
- |
redisTemplate.opsForValue().getOperations().randomKey() |
获取一个随机的键 |
String |
rename(src,dst) 重命名键
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rename(K src, K dst) |
重命名键 |
src:原键名 dst:新键名 |
redisTemplate.opsForValue().getOperations().rename("oldKey", "newKey") |
将"oldKey"键重命名为"newKey" |
- |
dbsize() 获取数据库大小
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
dbsize() |
获取数据库大小 |
- |
redisTemplate.opsForValue().getOperations().execute(RedisServerCommands::dbSize) |
获取当前数据库的键的数量 |
Long |
expire(name, time) 设置键的过期时间
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
expire(K key, Duration timeout) |
设置键的过期时间 |
name:键名 time:秒数 |
redisTemplate.opsForValue().getOperations().expire("key", 60, TimeUnit.SECONDS) |
将"key"键设置为60秒后过期 |
boolean |
getExpire(name) 获取键的剩余时间
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
getExpire(K key) |
获取键的剩余时间 |
name:键名 |
redisTemplate.opsForValue().getOperations().getExpire("key", TimeUnit.SECONDS) |
获取"key"键的剩余时间,分钟 |
long |
move(name, db) 将键移动到其他数据库
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
move(K name, int db) |
将键移动到其他数据库 |
name:键名 db:目标数据库索引 |
redisTemplate.opsForValue().getOperations().move("key", 1) |
将"key"键移动到数据库1 |
boolean |
flushDb() 清空当前数据库
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
flushDb() |
清空当前数据库 |
- |
redisTemplate.getConnectionFactory().getConnection().serverCommands().flushDb() |
清空当前数据库中的键 |
void |
flushAll() 清空所有数据库
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
flushall() |
清空所有数据库 |
- |
redisTemplate.getConnectionFactory().getConnection().serverCommands().flushAll() |
清空所有数据库中的键 |
void |
字符串操作
Redis-py字符串操作
set(name,value) 将数据库中指定键名对应的键值赋值为value
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
set(name,value) |
将数据库中指定键名对应的键值赋值为value |
name:键名 value:值 |
redis.set('name','Bob') |
将name键对应的值赋为Bob |
True |
get(name) 返回数据库指定键名对应的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
get(name) |
返回数据库指定键名对应的值 |
name:键名 |
redis.get('name') |
返回name这个键对应的值 |
b'Bob' |
getset(name,value) 将数据库中指定键对应的值赋为value,并返回上次的value
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
getset(name,value) |
将数据库中指定键对应的值赋为value,并返回上次的value |
name:键名 value:新值 |
redis.getset('name','Mike') |
将name这个键赋值为Mike,返回上次的value |
b'Bob' |
mget(keys,*args) 返回由多个键对应的value组成的列表
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
mget(keys,*args) |
返回由多个键对应的value组成的列表 |
keys:键名 |
redis.mget(['name','nickname']) |
返回name和nickname对应的value |
[b'Mike',b'Miker'] |
setnx(name,value) 如果不存在指定的键值对,则更新value,否则保持不变
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
setnx(name,value) |
如果不存在指定的键值对,则更新value,否则保持不变 |
name:键名 |
redis.setnx('newname','James') |
如果不存在newname这个键,则设置相应的键值对,对应的值为James |
第一次运行的结果是True,第二次是False |
setex(name,time,value) 设置键名对应的值为value,并指定键有效时间
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
setex(name,time,value) |
设置键名对应的值为value,并指定键有效时间 |
name:键名 time:有效期 value:值 |
redis.setex('name',1,'James') |
将name这个键的值设置为James,有效期为1秒 |
True |
setrange(name,offset,value) 设置指定键名对应值的子字符串
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
setrange(name,offset,value) |
设置指定键名对应值的子字符串 |
name:键名 offset:偏移量 value:子字符串 |
redis.set('name','Hello')
redis.setrange('name',6,'World') |
将name这个键对应的值赋为World,并在该键index为6的位置补充World |
11,修改后的字符串长度 |
mset(mapping) 批量赋值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
mset(mapping) |
批量赋值 |
mapping:字典或关键字参数 |
redis.mset({'name1':'Durant','name2':'James'}) |
将name1赋值为Durant,name2赋值为James |
True |
msetnx(mapping) 指定键名均不存在时,才批量赋值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
msetnx(mapping) |
指定键名均不存在时,才批量赋值 |
mapping:字典或关键字参数 |
redis.mset({'name3':'Smith','name4':'Curry'}) |
在name3和name4均不存在的情况下,才赋值 |
True |
incr(name,amount=1) 对指定键名对应的值做增值操作,默认+1,如果键不存在将创建一个
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
incr(name,amount=1) |
对指定键名对应的值做增值操作,默认+1,如果键不存在将创建一个 |
name:键名 amount:增加的值 |
redis.incr('age',1) |
将age对应的值+1,如果age这个键不存在则创建,并将值设为1 |
1,修改后的值 |
decr(name,amount=1) 对指定的键名做减值操作,默认-1,如果键不存在将创建一个
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
decr(name,amount=1) |
对指定的键名做减值操作,默认-1,如果键不存在将创建一个 |
name:键名 amount:减少的值 |
redis.decr('age',1) |
将age对应的值-1,如果age这个键不存在则创建,并将值设为1 |
1,修改后的值 |
append(key,value) 对指定键名的值附加字符串value
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
append(key,value) |
对指定键名的值附加字符串value |
key:键名 |
redis.append('nickname','OK') |
在nickname对应的值后面追加字符串OK |
13,即修改后的字符串长度 |
substr(name,start,end=-1) 返回指定键对应值的子字符串 (GETRANGE 命令在 Redis 2.0 之前的版本里面被称为 SUBSTR 命令)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
substr(name,start,end=-1) |
返回指定键对应值的子字符串 |
name:键名 start:起始索引 end:终止索引,默认为1,表示截取到末尾 |
redis.substr('name',1,4) |
返回键名name对应的值子字符串,截取键值字符串中索引为1~4的字符 |
b'ello' |
getrange(key,start,end) 获取指定键名对应值从start到end位置的字符串 (GETRANGE 命令在 Redis 2.0 之前的版本里面被称为 SUBSTR 命令)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
getrange(key,start,end) |
获取指定键名对应的键值从start到end位置的子字符串 |
key:键名 start:起始索引 end:终止索引 |
redis.getrange('name',1,4) |
返回键名name对应的值子字符串,截取键值字符串中索引为1~4的字符 |
b'ello' |
Redistemplate字符串操作
set(key, value) 设置键值对
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
set(K key, V value) |
设置键值对 |
key, value |
redisTemplate.opsForValue().set("name", "value") |
将"name"键设置为"value" |
- |
get(key) 获取键值对
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
get(K key) |
获取键值对 |
key |
redisTemplate.opsForValue().get("name") |
获取"name"键对应的值 |
string |
getAndSet(key,value) 获取并更新键的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
getAndSet(K key, V value) |
获取并更新键的值 |
key, value |
redisTemplate.opsForValue().getAndSet("name","value") |
将"name"键的值设置为"value",并返回原先的值 |
string |
multiGet(keys) 批量获取值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
multiGet(Collection keys) |
批量获取值 |
keys:键名为集合类型 |
redisTemplate.opsForValue().multiGet(keys) |
批量获取指定键的值 |
List |
setIfAbsent( key, value) 若键不存在则设置
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
setIfAbsent(K key, V value) |
如果不存在设置键值 |
key:键名 value:值 |
redisTemplate.opsForValue().setIfAbsent("name":"value") |
若键不存在则设置 |
Boolean |
set(key,value,time,unit) 设置带过期时间的键值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
set(K key, V value, long timeout, TimeUnit unit) |
设置键值(带过期) |
key:键名
value:值timeout:时间 unit:时间单位 |
redisTemplate.opsForValue().set(name, value, time) |
设置带过期时间的键值 |
Boolean |
set(key,value,offset) 设置字符串指定位置值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
set(K key, V value, long offset) |
修改字符串指定位置值 |
key:键名 value:值 offset:偏移量 |
redisTemplate.opsForValue().set(name, value,6) |
设置字符串指定位置值 |
Long |
multiSet(map) 批量设置指定键值对
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
multiSet(Map<? extends K, ? extends V> map) |
批量设置值 |
map:键值对 |
redisTemplate.opsForValue().multiSet(map) |
批量设置指定键值对 |
Void |
multiSetIfAbsent(map) 若键不存在才批量设置键值对
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
multiSetIfAbsent(Map<? extends K, ? extends V> map) |
若键不存在才批量设置键值对 |
map:键值对 |
redisTemplate.opsForValue().multiSetIfAbsent(map) |
若键不存在才批量设置键值对 |
Boolean |
decrement(K key, long delta) 递减键的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
decrement(K key, long delta) |
递减键的值 |
key:键名, delta:递减量 |
redisTemplate.opsForValue().decrement("key", 1L) |
将名为key的键的值递减1 |
递减后的值 |
append(K key, V value) 追加字符串
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
append(K key, V value) |
追加字符串 |
key:键名, value:追加的字符串 |
redisTemplate.opsForValue().append("key", "value") |
在名为key的键的值后追加字符串"value" |
追加后的字符串长度 |
get(K key, long start, long end) 获取子字符串
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
get(K key, long start, long end) |
获取子字符串 |
key:键名, start:起始位置, end:结束位置 |
redisTemplate.opsForValue().get("key", 0L, 4L) |
获取名为key的键的值中从索引0到索引4的子字符串 |
子字符串 |
列表操作
Redis-py列表操作
rpush(name,*values) 在键名为name的列表未添加值value,可以传入多个value
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rpush(name,*values) |
在键名为name的列表未添加值为value,可以传入多个value |
name:键名 values:值 |
redis.rpush('list',1,2,3) |
向list键的表未添加1,2,3 |
3,即列表大小 |
lpush(name,*values) 在键名name的列表头添加值value,可以传入多个value
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
lpush(name,*values) |
在键名name的列表头添加值value,可以传入多个value |
name:键名 values:值 |
redis.lpush('list',0) |
向键名为list的列表头部添加0 |
4,即列表大小 |
llen(name) 返回键名为name的列表长度
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
llen(name) |
返回键名为name的列表长度 |
name:键名 |
redis.llen('list') |
返回键名为list的列表长度 |
4 |
lrange(name,start,end) 返回键名为name的列表中索引从start到end之间的元素(保留索引外的数据)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
lrange(name,start,end) |
返回键名为name的列表中索引从start到end之间的元素 |
name:键名 start:起始索引 end:终止索引 |
redis.lrange('list',1,3) |
返回索引从1到3对应的列表元素 |
[b'3',b'2',b'1'] |
ltrim(name,start,end) 截取键名为name的列表,保留索引从start到end之间的元素(索引外的数据被删除)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
ltrim(name,start,end) |
截取键名为name的列表,保留索引从start到end之间的元素 |
name:键名 start:起始索引 end:终止索引 |
ltrim('list',1,3) |
保留键名为list的列表中索引从1到3的元素 |
True |
lindex(name,index) 返回键名为name的列表中,index位置的元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
lindex(name,index) |
返回键名为name的列表中,index位置的元素 |
name:键名 index:索引 |
redis.lindex('list',1) |
返回键名为list的列表中索引为1的元素 |
b'2' |
lset(name,index,value) 为键名name的列表中index位置的元素赋值,如果index越界就报错
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
lset(name,index,value) |
为键名name的列表中index位置的元素赋值,如果index越界就报错 |
name:键名 index:索引位置 value:值 |
redis.lset('list',1,5) |
将键名为list的列表中索引为1的位置赋值为5 |
True |
lrem(name,count,value) 删除键名为name的列表中count个值为value的元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
lrem(name,count,value) |
删除键名为name的列表中count个值为value的元素 |
name:键名 count:删除个数 value:值 |
redis.lrem('list',2,3) |
删除键名为list的列表中两个3 |
2,删除的个数 |
lpop(name) 返回并删除键名为name的列表中的首元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
lpop(name) |
返回并删除键名为name的列表中的首元素 |
name:键名 |
redis.lpop('list') |
返回并删除键名为list的列表中的第一个元素 |
b'5' |
rpop(name) 返回并删除键名为name的列表中的尾元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rpop(name) |
返回并删除键名为name的列表中的尾元素 |
name:键名 |
reids.rpop('list') |
返回并删除键名为list的列表中的最后一个元素 |
b'2' |
blpop(keys,timeout=0) 返回并删除指定键名对应的列表中的首个元素。如果列表为空,则一直阻塞等待
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
blpop(keys,timeout=0) |
返回并删除指定键名对应的列表中的首个元素。如果列表为空,则一直阻塞等待 |
keys:键名 timeout:超时等待时间,0表示一直等待 |
redis.blpop('list') |
返回并删除键名为list的列表中的第一个元素 |
[b'5'] |
brpop(keys,timeout=0) 返回并删除指定键名对应的列表中的尾元素。如果列表为空,则一直阻塞等待
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
brpop(keys,timeout=0) |
返回并删除指定键名对应的列表中的尾元素。如果列表为空,则一直阻塞等待 |
keys:键名 timeout:超时等待时间,0表示一直等待 |
redis.brpop('list') |
返回并删除键名为list的列表中的最后一个元素 |
[b'2'] |
rpoplpush(src,dst) 返回并删除键名为src的列表中的尾元素,并将该元素添加到dst列表的头部
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rpoplpush(src,dst) |
返回并删除键名为src的列表中的尾元素,并将该元素添加到dst列表的头部 |
src:源列表的键名 dst:目标列表的键名 |
redis.rpoplpush('list','list2') |
删除键名为list的列表最后一个元素,并将其添加到键名为list2列表的头部,并返回 |
b'2' |
Redistemplate列表操作
rightPushAll(K key, V... values) 从右侧插入多个值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rightPushAll(K key, V... values) |
从右侧插入多个值 |
key:键名, values:要插入的值 |
redisTemplate.opsForList().rightPushAll("key", "value1", "value2", "value3") |
在名为key的列表的右侧插入值"value1", "value2", "value3" |
插入操作后列表的长度 |
leftPushAll(K key, V... values) 从左侧插入多个值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
leftPushAll(K key, V... values) |
从左侧插入多个值 |
key:键名, values:要插入的值 |
redisTemplate.opsForList().leftPushAll("key", "value1", "value2", "value3") |
在名为key的列表的左侧插入值"value1", "value2", "value3" |
插入操作后列表的长度 |
size(K key) 获取列表长度
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
size(K key) |
获取列表长度 |
key:键名 |
redisTemplate.opsForList().size("key") |
获取名为key的列表的长度 |
列表的长度 |
range(K key, long start, long end) 获取列表指定范围内的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
range(K key, long start, long end) |
获取列表指定范围内的值 |
key:键名, start:起始索引, end:结束索引 |
redisTemplate.opsForList().range("key", 0, -1) |
获取名为key的列表中所有的值 |
列表中指定范围的值列表 |
trim(K key, long start, long end) 修剪列表保留指定范围内的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
trim(K key, long start, long end) |
修剪列表保留指定范围内的值 |
key:键名, start:起始索引, end:结束索引 |
redisTemplate.opsForList().trim("key", 0, 2) |
保留名为key的列表中指定范围的值 |
修剪后的列表长度 |
index(K key, long index) 获取列表指定索引处的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
index(K key, long index) |
获取列表指定索引处的值 |
key:键名, index:索引位置 |
redisTemplate.opsForList().index("key", 2) |
获取名为key的列表中索引为2的值 |
索引处的值 |
set(K key, long index, V value) 修改列表指定索引处的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
set(K key, long index, V value) |
修改列表指定索引处的值 |
key:键名, index:索引位置, value:要设置的值 |
redisTemplate.opsForList().set("key", 2, "value") |
修改名为key的列表中索引为2的值为"value" |
无返回值 |
remove(K key, long count, V value) 从列表中删除指定值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
remove(K key, long count, V value) |
从列表中删除指定值 |
key:键名, count:删除数量, value:要删除的值 |
redisTemplate.opsForList().remove("key", 2, "value") |
从名为key的列表中删除2个值为"value"的元素 |
删除的元素个数 |
leftPop(K key) 从列表左侧弹出一个值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
leftPop(K key) |
从列表左侧弹出一个值 |
key:键名 |
redisTemplate.opsForList().leftPop("key") |
从名为key的列表左侧弹出一个值 |
弹出的值 |
rightPop(K key) 从列表右侧弹出一个值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rightPop(K key) |
从列表右侧弹出一个值 |
key:键名 |
redisTemplate.opsForList().rightPop("key") |
从名为key的列表右侧弹出一个值 |
弹出的值 |
leftPop(K... keys, long timeout) 从左侧弹出一个值设置超时时间
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
leftPop(K... keys, long timeout) |
从左侧弹出一个值 |
keys:键名列表, timeout:超时时间 |
redisTemplate.opsForList().leftPop("key1", "key2", 10) |
从名为key1、key2的列表左侧弹出一个值,超时时间为10秒 |
弹出的值 |
rightPop(K... keys, long timeout) 从右侧弹出一个值设置超时时间
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rightPop(K... keys, long timeout) |
从右侧弹出一个值 |
keys:键名列表, timeout:超时时间 |
redisTemplate.opsForList().rightPop("key1", "key2", 10) |
从名为key1、key2的列表右侧弹出一个值,超时时间为10秒 |
弹出的值 |
rightPopAndLeftPush(K srcKey, K destKey) 从右侧弹出一个值并将其插入另一个列表左侧
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rightPopAndLeftPush(K srcKey, K destKey) |
从右侧弹出一个值并将其插入另一个列表左侧 |
srcKey:源列表键名, destKey:目标列表键名 |
redisTemplate.opsForList().rightPopAndLeftPush("src", "dst") |
从名为src的列表右侧弹出一个值,并将其插入名为dst的列表左侧 |
弹出的值 |
集合操作
Redis-py集合操作
sadd(name,*values) 向键名为name的集合中添加元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sadd(name,*values) |
向键名为name的集合中添加元素 |
name:键名 values:值可以为多个 |
redis.sadd('tags','Book','Tea','Coffee') |
向键名为tags的集合中添加Book、Tea和Coffee三项内容 |
3,添加的数据个数 |
srem(name,*values) 从键名为name的集合中删除元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
srem(name,*values) |
从键名为name的集合中删除元素 |
name:键名 values:值可以为多个 |
redis.srem('tags','Book) |
从键名为tags的集合中删除Book |
1,删除数据的个数 |
spop(name) 随机返回并删除键名为name的集合中一个元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
spop(name) |
随机返回并删除键名为name的集合中一个元素 |
name:键名 |
redis.spop('tags') |
随机删除并返回键名为tags的集合中的某元素 |
b'Tea' |
smove(src,dst,value) 从键名为src的集合中移出value,并将其添加到dst对应的集合中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
smove(src,dst,value) |
从键名为src的集合中移出value,并将其添加到dst对应的集合中 |
src:源集合 dst:目标集合 value:元素值 |
redis.smove('tags','tags2','Coffee') |
从键名为tags集合中删除元素Coffee,并添加到tags2集合中 |
True |
scard(name) 返回键名为name的集合中的元素个数
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
scard(name) |
返回键名为name的集合中的元素个数 |
name:键名 |
redis.scard('tags') |
后去键名为tags的集合中元素的个数 |
3 |
sismember(name,value) 测试value是否为键名为name集合中的元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sismember(name,value) |
测试value是否为键名为name集合中的元素 |
name:键名 |
redis.sismember('tags','Book') |
Book是否是键名为tags的集合中的元素 |
3 |
sinter(keys,*args) 返回所有给定键名的集合的交集
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sinter(keys,*args) |
返回所有给定键名的集合的交集 |
keys:键名 |
redis.sinter(['tags','tags2']) |
返回键名为tags和tags2集合的交集 |
|
sinterstore(dest,keys,*args) 求多个集合的交集,并将交集保存到键名dest的集合中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sinterstore(dest,keys,*args) |
求多个集合的交集,并将交集保存到键名dest的集合中 |
keys:键名序列 dest:结果集合 |
redis.sinterstore('inttag',['tags','tags2']) |
将键名为tags和tags2的集合交集,保存到inttag的集合中 |
1 |
sunion(keys,*args) 返回所有给定键集合的并集
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sunion(keys,*args) |
返回所有给定键集合的并集 |
keys:键名序列 |
redis.sunion(['tags','tags2']) |
返回键为tags和tags2和集合并集 |
|
sunionstore(dest,keys,*args) 返回所有给定键集合的并集,并将并集保存到dest的集合中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sunionstore(dest,keys,*args) |
返回所有给定键集合的并集,并将并集保存到dest的集合中 |
keys:键名序列 dest:结果集合 |
redis.sunionstore('inttag',['tags','tags2']) |
将键名为tags和tags2的集合并集,保存到inttag的集合中 |
3 |
sdiff(keys,*args) 返回所有给定键名的差集
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sdiff(keys,*args) |
返回所有给定键名的差集 |
keys:键名序列 |
redis.sdiff(['tags','tags2']) |
返回键为tags和tags2和集合差集 |
|
sdiffstore(dest,keys,*args) 返回所有给定键名的差集,并将差集保存到dest的集合中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
sdiffstore(dest,keys,*args) |
返回所有给定键名的差集,并将差集保存到dest的集合中 |
keys:键名序列 dest:结果集合 |
redis.sdiffstore('inttag',['tags','tags2']) |
将键名为tags和tags2的集合差集,保存到inttag的集合中 |
3 |
smembers(name) 返回键名为name的集合所有元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
smembers(name) |
返回键名为name的集合所有元素 |
name:键名 |
redis.semebers('tags') |
返回键名为tags的集合所有元素 |
|
srandmember(name) 随机返回键名为name的集合中的一个元素,但不删除
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
srandmember(name) |
随机返回键名为name的集合中的一个元素,但不删除 |
name:键名 |
redis.srandmember('tags') |
返回键名为tags的集合中一个元素 |
Srandmember(name) |
Redistemplate集合操作
add(K key, V... values) 向集合中添加一个或多个元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
add(K key, V... values) |
向集合中添加一个或多个元素 |
key:键名, values:要添加的元素 |
redisTemplate.opsForSet().add("key", "value1", "value2") |
向名为key的集合中添加value1和value2两个元素 |
添加的元素个数 |
remove(K key, V... values) 从集合中移除一个或多个元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
remove(K key, V... values) |
从集合中移除一个或多个元素 |
key:键名, values:要移除的元素 |
redisTemplate.opsForSet().remove("key", "value1", "value2") |
从名为key的集合中移除value1和value2两个元素 |
移除的元素个数 |
pop(K key) 从集合中随机弹出一个元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
pop(K key) |
从集合中随机弹出一个元素 |
key:键名 |
redisTemplate.opsForSet().pop("key") |
从名为key的集合中随机弹出一个元素 |
弹出的元素 |
move(K src, K dst, V value) 将集合中的一个元素从源集合移动到目标集合
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
move(K src, K dst, V value) |
将集合中的一个元素从源集合移动到目标集合 |
src:源集合的键名,dst:目标集合的键名,value:要移动的元素 |
redisTemplate.opsForSet().move("src", "dst", "value") |
从名为src的集合中移动元素"value"到名为dst的集合中 |
1或0(成功返回1,失败返回0) |
size(K key) 获取集合中的元素数量(基数)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
size(K key) |
获取集合中的元素数量(基数) |
key:集合的键名 |
redisTemplate.opsForSet().size("key") |
获取名为key的集合中的元素数量 |
Long |
isMember(K key, V value) 判断元素是否存在于集合中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
isMember(K key, V value) |
判断元素是否存在于集合中 |
key:集合的键名,value:要判断的元素 |
redisTemplate.opsForSet().isMember("key", "value") |
判断名为key的集合中是否存在元素"value" |
boolean |
intersect(K... keys) 获取多个集合的交集
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
intersect(K... keys) |
获取多个集合的交集 |
keys:多个集合的键名 |
redisTemplate.opsForSet().intersect("key1", "key2", "key3") |
获取名为key1、key2和key3的集合的交集 |
Set |
intersectAndStore(K dest, K... keys) 将多个集合的交集存储到目标集合
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
intersectAndStore(K dest, K... keys) |
将多个集合的交集存储到目标集合 |
dest:目标集合的键名,keys:多个集合的键名 |
redisTemplate.opsForSet().intersectAndStore("dest", "key1", "key2", "key3") |
将名为key1、key2和key3的集合的交集存储到名为dest的集合中 |
Long(存储的元素数量) |
union(K... keys) 获取多个集合的并集
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
union(K... keys) |
获取多个集合的并集 |
keys:多个集合的键名 |
redisTemplate.opsForSet().union("key1", "key2", "key3") |
获取名为key1、key2和key3的集合的并集 |
Set |
unionAndStore(K dest, K... keys) 将多个集合的并集存储到目标集合
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
unionAndStore(K dest, K... keys) |
将多个集合的并集存储到目标集合 |
dest:目标集合的键名,keys:多个集合的键名 |
redisTemplate.opsForSet().unionAndStore("dest", "key1", "key2", "key3") |
将名为key1、key2和key3的集合的并集存储到名为dest的集合中 |
Long(存储的元素数量) |
difference(K... keys) 获取多个集合的差集
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
difference(K... keys) |
获取多个集合的差集 |
keys:多个集合的键名 |
redisTemplate.opsForSet().difference("key1", "key2", "key3") |
获取名为key1相对于key2和key3的集合的差集 |
Set |
differenceAndStore(K dest, K... keys) 将多个集合的差集存储到目标集合
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
differenceAndStore(K dest, K... keys) |
将多个集合的差集存储到目标集合 |
dest:目标集合的键名,keys:多个集合的键名 |
redisTemplate.opsForSet().differenceAndStore("dest", "key1", "key2", "key3") |
将名为key1相对于key2和key3的集合的差集存储到名为dest的集合中 |
Long(存储的元素数量) |
members(K key) 获取集合的所有成员
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
members(K key) |
获取集合的所有成员 |
key:集合的键名 |
redisTemplate.opsForSet().members("key") |
获取名为key的集合的所有成员 |
Set |
randomMember(K key) 从集合中随机获取一个成员
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
randomMember(K key) |
从集合中随机获取一个成员 |
key:集合的键名 |
redisTemplate.opsForSet().randomMember("key") |
从名为key的集合中随机获取一个成员 |
V(随机成员值) |
有序集合操作
Redis-py有序集合操作
zadd(name,args,*kwargs) 向键名name的有序集合中添加元素。score字段用于排序,如果该元素存在,则更新元素顺序
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zadd(name,args,*kwargs) |
向键名name的有序集合中添加元素。score字段用于排序,如果该元素存在,则更新元素顺序 |
name:键名 args:可变参数 |
redis.zadd('grade',100,'Bob',98,'Mike') |
向键名为grade的有序集合添加Bob,(score为100),Mike(score为98) |
2,添加元素的个数 |
zrem(name,*values) 删除键名为name的有序集合元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zrem(name,*values) |
删除键名为name的有序集合元素 |
name:键名 values:元素 |
redis.zrem('grade','Mike') |
从键名为grade的有序集合删除Mike |
1,删除元素的个数 |
zincrby(name,value,amount=1) 如果键名为name的有序集合已经存在元素value,则将该元素的score增加amount;否则向该集合添加value元素,其score的值为amount
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zincrby(name,value,amount=1) |
如果键名为name的有序集合已经存在元素value,则将该元素的score增加amount;否则向该集合添加value元素,其score的值为amount |
name:键名 value:元素 amount:增长score值 |
redis.zincrby('grade','Bob',-2) |
将键名为grade的有序集合中Bob元素的score减2 |
98.0。即修改后的值 |
zrank(name,value) 返回键名为name的有序集合中value元素的排名,或名次(对各元素按照score从小到大排序)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zrank(name,value) |
返回键名为name的有序集合中value元素的排名,或名次(对各元素按照score从小到大排序) |
name:键名 value:元素 |
redis.zrank('grade','Amy') |
得到键名为grade的有序集合中Amy的排名 |
1 |
zrevrank(name,value) 返回键名为name的有序集合中value元素的倒数排名,或名次(对各元素按照score从大到小排序)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zrevrank(name,value) |
返回键名为name的有序集合中value元素的倒数排名,或名次(对各元素按照score从大到小排序) |
name:键名 value:元素 |
redis.zrank('grade','Amy') |
得到键名为grade的有序集合中Amy的倒数排名 |
2 |
zrevrange(name,start,end,withscores=False) 返回键名为name的有序集合中名次索引从start到end之间多有的元素(按照score从大到小)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zrevrange(name,start,end,withscores=False) |
返回键名为name的有序集合中名次索引从start到end之间多有的元素(按照score从大到小) |
name:键名 start:开始索引 end:结束索引 |
redis.zrevrange('grade',0,3) |
返回键名为grade的有序集合前四名元素 |
[b'Bob',b'Mike',b'Amy',b'James'] |
zrangebyscore(name,min,max,start=None,num=None,withscore=False) 返回键名为name的有序集合中score在给定区间的元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zrangebyscore(name,min,max,start=None,num=None,withscore=False) |
返回键名为name的有序集合中score在给定区间的元素 |
name:键名 min:最低score max:最高score start:起始索引 num:个数 withscore:是否带score |
redis.zrangebysocre('grade',80,95) |
返回grade的有序集合中score在80-95之间的元素 |
[b'Bob',b'Mike',b'Amy',b'James'] |
zcount(name,min,max) 返回键名为name的有序集合中score在给定区间元素的数量
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zcount(name,min,max) |
返回键名为name的有序集合中score在给定区间元素的数量 |
name:键名 min:最低score max:最高score |
redis.zcount('grade',80,95) |
返回键名为grade的有序集合中score在80-95之间元素的个数 |
4 |
zcard(name) 返回键名为name的有序集合中元素的个数
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zcard(name) |
返回键名为name的有序集合中元素的个数 |
name:键名 |
redis.zcard('grade') |
获取键名为grade的有序集合中元素的个数 |
3 |
zremrangebyrank(name,min,max) 删除键名为name的有序集合中排名在给定区间的元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zremrangebyrank(name,min,max) |
删除键名为name的有序集合中排名在给定区间的元素 |
name:键名 min:最低名次 max:最高名次 |
redis.zremrangebyrank('grade',0,0) |
删除键名为grade的有序集合中排名第一的元素 |
1,删除的元素 |
zremrangebyscore(name,min,max) 删除键名为name的有序集合中score在给定区间的元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
zremrangebyscore(name,min,max) |
删除键名为name的有序集合中score在给定区间的元素 |
name:键名 min:最低名次 max:最高名次 |
redis.zremrangebyscore('grade',80,90) |
删除键名为grade的有序集合中80-90之间的元素 |
1,删除的元素 |
Redistemplate有序集合操作
add(K key, V value, double score) 向有序集合中添加一个成员
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
add(K key, V value, double score) |
向有序集合中添加一个成员 |
key:有序集合的键名,value:成员值,score:成员的分数 |
redisTemplate.opsForZSet().add("key", "value", 0.5) |
向名为key的有序集合中添加一个分数为0.5的成员 |
boolean(添加是否成功) |
remove(K key, Object... values) 从有序集合中移除一个或多个成员
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
remove(K key, Object... values) |
从有序集合中移除一个或多个成员 |
key:有序集合的键名,values:要移除的成员值 |
redisTemplate.opsForZSet().remove("key", "value1", "value2") |
从名为key的有序集合中移除value1和value2 |
Long(移除的成员数量) |
incrementScore(K key, V value, double delta) 递增有序集合中成员的分数
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
incrementScore(K key, V value, double delta) |
递增有序集合中成员的分数 |
key:有序集合的键名,value:成员值,delta:递增的分数值 |
redisTemplate.opsForZSet().incrementScore("key", "value", 0.5) |
将名为key的有序集合中value的分数增加0.5(如果amount为负数,则递减) |
double(递增后的分数) |
rank(K key, Object value) 获取有序集合中成员的排名
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rank(K key, Object value) |
获取有序集合中成员的排名 |
key:有序集合的键名,value:成员值 |
redisTemplate.opsForZSet().rank("key", "value") |
获取名为key的有序集合中value的排名(按照分数从低到高排序) |
Long(成员的排名,0-based) |
reverseRank(K key, V value) 获取有序集合中成员的反向排名
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
reverseRank(K key, V value) |
获取有序集合中成员的反向排名 |
key:有序集合的键名,value:成员值 |
redisTemplate.opsForZSet().reverseRank("key", "value") |
获取名为key的有序集合中value的反向排名(按照分数从高到低排序) |
Long(成员的反向排名,0-based) |
range(K key, long start, long end, boolean withScores) 获取有序集合中指定范围的成员(按照分数从低到高排序)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
range(K key, long start, long end, boolean withScores) |
获取有序集合中指定范围的成员(按照分数从低到高排序) |
key:有序集合的键名,start:起始索引,end:结束索引,withScores:是否包含成员的分数 |
redisTemplate.opsForZSet().range("key", 0, -1, False) |
获取名为key的有序集合中所有成员(不包含分数) |
List(成员列表) |
rangeByScore(K key, double min, double max, long start, long num, boolean withScores) 获取有序集合中指定分数范围内的成员(按照分数从低到高排序)
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
rangeByScore(K key, double min, double max, long start, long num, boolean withScores) |
获取有序集合中指定分数范围内的成员(按照分数从低到高排序) |
key:有序集合的键名,min:最小分数,max:最大分数,start:起始索引,num:返回数量,withScores:是否包含成员的分数 |
redisTemplate.opsForZSet().rangeByScore("key", 0, 10, 0, -1, False) |
获取名为key的有序集合中分数在0到10之间的所有成员(不包含分数) |
List(成员列表) |
count(K key, double min, double max) 统计有序集合中指定分数范围内的成员数量
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
count(K key, double min, double max) |
统计有序集合中指定分数范围内的成员数量 |
key:有序集合的键名,min:最小分数,max:最大分数 |
redisTemplate.opsForZSet().count("key", 0, 10) |
统计名为key的有序集合中分数在0到10之间的成员数量 |
Long(成员数量) |
size(K key) 获取有序集合的大小
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
size(K key) |
获取有序集合的大小 |
key:有序集合的键名 |
redisTemplate.opsForZSet().size("key") |
获取名为key的有序集合的大小 |
Long |
removeRange(K key, long start, long end) 移除有序集合中指定排名范围内的成员
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
removeRange(K key, long start, long end) |
移除有序集合中指定排名范围内的成员 |
key:有序集合的键名,start:起始排名,end:结束排名 |
redisTemplate.opsForZSet().removeRange("key", 0, 10) |
移除名为key的有序集合中排名在0到10之间的所有成员 |
Long |
removeRangeByScore(K key, double min, double max) 移除有序集合中指定分数范围内的成员
第四十一段:
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
count(K key, double min, double max) |
统计有序集合中指定分数范围内的成员数量 |
key:有序集合的键名,min:最小分数,max:最大分数 |
redisTemplate.opsForZSet().count("key", 0, 10) |
统计名为key的有序集合中分数在0到10之间的成员数量 |
Long(成员数量) |
第四十二段:
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
size(K key) |
获取有序集合的大小 |
key:有序集合的键名 |
redisTemplate.opsForZSet().size("key") |
获取名为key的有序集合的大小 |
Long |
第四十三段:
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
removeRange(K key, long start, long end) |
移除有序集合中指定排名范围内的成员 |
key:有序集合的键名,start:起始排名,end:结束排名 |
redisTemplate.opsForZSet().removeRange("key", 0, 10) |
移除名为key的有序集合中排名在0到10之间的所有成员 |
Long |
第四十四段:
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
removeRangeByScore(K key, double min, double max) |
移除有序集合中指定分数范围内的成员 |
key:有序集合的键名,min:最小分数,max:最大分数 |
redisTemplate.opsForZSet().removeRangeByScore("key", 0, 10) |
移除名为key的有序集合中分数在0到10之间的所有成员 |
Long |
散列操作
Redis-py散列操作
hset(name,key,value) 向键名为name的散列中添加映射
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hset(name,key,value) |
向键名为name的散列中添加映射 |
name:散列表键名 key:映射键名 value:映射键值 |
hset('price','cake',5) |
向键名为price的散列表中添加映射关系,cake的值为5 |
1,添加映射个数 |
hsetnx(name,key,value) 如果键名为name的散列表中不存在给定映射,则向其中添加
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hsetnx(name,key,value) |
如果键名为name的散列表中不存在给定映射,则向其中添加 |
name:散列表键名 key:映射键名 value:映射键值 |
hset('price','book',6) |
向键名为price的散列表中添加映射关系,book值为6 |
1,添加映射个数 |
hget(name,key) 返回键名为name的散列中key对应的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hget(name,key) |
返回键名为name的散列中key对应的值 |
name:散列表键名 key:映射键名 |
redis.hget('price','cake') |
获取键名为price的散列中键名cake的值 |
5 |
hmget(name,key,*args) 返回键名为name的散列表中个键对应的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hmget(name,key,*args) |
返回键名为name的散列表中个键对应的值 |
name:散列表键名 key:键名序列 |
reids.hmget('price',['apple','orange']) |
获取键名为price的散列中apple和orange的值 |
[price b'3',appleb'7'] |
hmset(name,mapping) 向键名为name的散列表中批量添加映射
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hmset(name,mapping) |
向键名为name的散列表中批量添加映射 |
name:散列表键名 mapping:映射字典 |
redis.hmset('price',{'banana':2,'pear':6}) |
向键名price的散列中批量添加 |
True |
hincrby(name,key,amount=1) 将键名为name的散列表中的映射键值添加amount
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hincrby(name,key,amount=1) |
将键名为name的散列表中的映射键值添加amount |
name:散列表键名 key:映射键名 amount:增长量 |
redis.hincrby('price','apple',3) |
将键名为price的散列表中apple的键增加三 |
6,修改后的值 |
hexists(name,key) 返回键名为name的散列表中是否存在键名为key的映射
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hexists(name,key) |
返回键名为name的散列表中是否存在键名为key的映射 |
name:散列表键名 key:映射键名 |
redis.hexists('price','banana') |
返回键名为price的散列表中是否存在键名为banana的映射 |
True |
hdel(name,*keys) 在键名为name的散列表中,删除具有给定键名的映射
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hdel(name,*keys) |
在键名为name的散列表中,删除具有给定键名的映射 |
name:散列表键名 key:映射键名序列 |
redis.hdel('price','banana') |
从键名为price的散列中删除键名为banana的映射 |
True |
hlen(name) 获取键名为name的散列表中有多少映射
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hlen(name) |
获取键名为name的散列表中有多少映射 |
name:散列表键名 |
redis.hlen('price') |
获取键名为price的散列表中映射的个数 |
6 |
hkeys(name) 获取键名为name的所有键名
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hkeys(name) |
获取键名为name的所有键名 |
name:散列表键名 |
redis.hkeys('price') |
获取键名为price的散列中所有的映射键名 |
[b'cake',b'book',b'banana',b'pear'] |
hvals(name) 获取键名为name的散列表中所有的映射值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hvals(name) |
获取键名为name的散列表中所有的映射值 |
name:散列表键名 |
redis.hvals('price') |
获取键名为price的所有映射值 |
[b'5',b'6',b'2',b'6'] |
hgetall(name) 获取键名为name的散列中所有的映射键值对
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hgetall(name) |
获取键名为name的散列中所有的映射键值对 |
name:散列表键名 |
redis.hgetall('price') |
获取键名为price的散列中所有的键值对 |
|
Redistemplate散列操作
put(K key, HK hashKey, HV value) 设置哈希表中指定字段的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
put(K key, HK hashKey, HV value) |
设置哈希表中指定字段的值 |
key:哈希表名 hashKey:字段名 value:字段值 |
redisTemplate.opsForHash().put("name", "field1", "value1") |
将哈希表 name 中的字段 field1 的值设置为 value1 |
- |
putIfAbsent(K key, HK hashKey, HV value) 当字段不存在时,设置哈希表中指定字段的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
putIfAbsent(K key, HK hashKey, HV value) |
当字段不存在时,设置哈希表中指定字段的值 |
key:哈希表名 hashKey:字段名 value:字段值 |
redisTemplate.opsForHash().putIfAbsent("name", "field1", "value1") |
如果哈希表 name 中的字段 field1 不存在,则将其值设置为 value1 |
- |
get(K key, Object hashKey) 获取哈希表中指定字段的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
get(K key, Object hashKey) |
获取哈希表中指定字段的值 |
key:哈希表名 hashKey:字段名 |
redisTemplate.opsForHash().get("name", "field1") |
获取哈希表 name 中字段 field1 的值 |
- |
multiGet(K key, Collection hashKeys) 获取哈希表中多个字段的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
multiGet(K key, Collection hashKeys) |
获取哈希表中多个字段的值 |
key:哈希表名 hashKeys:字段名集合 |
redisTemplate.opsForHash().multiGet("name", Arrays.asList("field1", "field2", "field3")) |
获取哈希表 name 中字段 field1、field2、field3 的值 |
List |
putAll(K key, Map<? extends HK, ? extends HV> m) 设置哈希表中多个字段的值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
putAll(K key, Map<? extends HK, ? extends HV> m) |
设置哈希表中多个字段的值 |
key:哈希表名 m:字段名和值的映射集合 |
redisTemplate.opsForHash().putAll("name", map) |
将哈希表 name 中的多个字段的值设置为对应的值 |
- |
increment(K key, HK hashKey, long delta) 对哈希表中指定字段的值增加指定的增量值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
increment(K key, HK hashKey, long delta) |
对哈希表中指定字段的值增加指定的增量值 |
key:哈希表名 hashKey:字段名 delta:增量值 |
redisTemplate.opsForHash().increment("name", "field1", 10) |
将哈希表 name 中字段 field1 的值增加 10 |
- |
hasKey(K key, Object hashKey) 判断哈希表中是否存在指定字段
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hasKey(K key, Object hashKey) |
判断哈希表中是否存在指定字段 |
key:哈希表名 hashKey:字段名 |
redisTemplate.opsForHash().hasKey("name", "field1") |
判断哈希表 name 中是否存在字段 field1 |
boolean |
delete(K key, Object... hashKeys) 删除哈希表中指定字段
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
delete(K key, Object... hashKeys) |
删除哈希表中指定字段 |
key:哈希表名 hashKeys:字段名集合 |
redisTemplate.opsForHash().delete("name", "field1", "field2", "field3") |
删除哈希表 name 中的字段 field1、field2、field3 |
Long |
size(K key) 获取哈希表中字段的数量
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
size(K key) |
获取哈希表中字段的数量 |
key:哈希表名 |
redisTemplate.opsForHash().size("name") |
获取哈希表 name 中字段的数量 |
Long |
keys(K key) 获取哈希表中所有的字段名
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
keys(K key) |
获取哈希表中所有的字段名 |
key:哈希表名 |
redisTemplate.opsForHash().keys("name") |
获取哈希表 name 中所有的字段名 |
Set |
values(K key) 获取哈希表中所有的字段值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
values(K key) |
获取哈希表中所有的字段值 |
key:哈希表名 |
redisTemplate.opsForHash().values("name") |
获取哈希表 name 中所有的字段值 |
List |
entries(K key) 获取哈希表中所有的字段和值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
entries(K key) |
获取哈希表中所有的字段和值 |
key:哈希表名 |
redisTemplate.opsForHash().entries("name") |
获取哈希表 name 中所有的字段和值 |
Map<HK, HV> |
GEO操作
Redis-py
geoadd(key, longitude, latitude, member) 将一个或多个经纬度坐标添加到指定的键名为key的有序集合中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
geoadd(key,longitude,latitude,member) |
将一个或多个经纬度坐标添加到指定的键名为key的有序集合中 |
key:键名(必须), longitude:经度(必须), latitude:纬度(必须), member:成员(必须,可以是字符串或数字) |
redis.geoadd("cities", -122.4194, 37.7749, "San Francisco") |
将"San Francisco"的经纬度(-122.4194, 37.7749)添加到键名为"cities"的有序集合中 |
1 |
geopos(key, member) 获取有序集合中指定成员的经纬度
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
geopos(key,member) |
获取有序集合中指定成员的经纬度 |
key:键名(必须), member:成员(必须,可以是字符串或数字) |
redis.geopos("cities", "San Francisco") |
获取键名为"cities"的有序集合中成员"San Francisco"的经纬度 |
[(b'-122.41941833496093750', b'37.77497850620753074')] |
geodist(key, member1, member2 [, unit]) 计算有序集合中两个成员之间的距离
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
geodist(key,member1,member2,unit=None) |
计算有序集合中两个成员之间的距离 |
key:键名(必须), member1:成员1(必须,可以是字符串或数字), member2:成员2(必须,可以是字符串或数字), unit:距离单位(可选,如"m", "km", "mi", "ft") |
redis.geodist("cities", "San Francisco", "New York", unit="km") |
获取键名为"cities"的有序集合中成员"San Francisco"和成员"New York"之间的距离(单位为公里) |
4139.6658 |
georadius(key, longitude, latitude, radius, unit) 获取指定范围内的地理位置
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
georadius(key, longitude, latitude, radius, unit) |
获取指定范围内的地理位置 |
key:键名 longitude:经度 latitude:纬度 radius:半径 unit:单位 |
redis.georadius("mykey", 13.361389, 38.115556, 200, "km") |
获取 "mykey" 中指定范围内的地理位置 |
[b'Palermo', b'Catania'] |
georadiusbymember(key, member, radius, unit) 获取指定成员周围的地理位置
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
georadiusbymember(key, member, radius, unit) |
获取指定成员周围的地理位置 |
key:键名 member:成员 radius:半径 unit:单位 |
redis.georadiusbymember("mykey", "Palermo", 200, "km") |
获取 "mykey" 中指定成员周围的地理位置 |
[b'Palermo', b'Catania'] |
geohash(key, member) 获取指定成员的地理位置的 geohash 值
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
geohash(key, member) |
获取指定成员的地理位置的 geohash 值 |
key:键名 member:成员 |
redis.geohash("mykey", "Palermo") |
获取 "mykey" 中指定成员的地理位置的 geohash 值 |
[b'sqh8b49rny0'] |
Redistemplate操作
add(K key, Point point, HK member) 向地理位置集合添加一个位置
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
add(K key, Point point, HK member) |
向地理位置集合添加一个位置 |
key:地理位置集合的名称 point:位置的经纬度坐标 member:位置的名称 |
redisTemplate.opsForGeo().add("locations", new RedisGeoCommands.GeoLocation<>("location1", new Point(1.23, 4.56))) |
将位置 "location1" 添加到名称为 "locations" 的地理位置集合中 |
Long(成功添加的位置数量) |
position(K key, HK... members) 获取地理位置集合中一个或多个位置的经纬度坐标
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
position(K key, HK... members) |
获取地理位置集合中一个或多个位置的经纬度坐标 |
key:地理位置集合的名称 members:位置的名称 |
redisTemplate.opsForGeo().position("locations", "location1", "location2") |
获取名称为 "location1" 和 "location2" 的位置在地理位置集合 "locations" 中的经纬度坐标 |
List |
distance(K key, HK member1, HK member2, Metric metric) 计算地理位置集合中两个位置之间的距离
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
distance(K key, HK member1, HK member2, Metric metric) |
计算地理位置集合中两个位置之间的距离 |
key:地理位置集合的名称 member1:位置1的名称 member2:位置2的名称 metric:距离单位 |
redisTemplate.opsForGeo().distance("locations", "location1", "location2", Metrics.KILOMETERS) |
计算名称为 "location1" 和 "location2" 的位置在地理位置集合 "locations" 中的距离(以千米为单位) |
Double(距离值) |
radius(K key, double longitude, double latitude, double distance, GeoUnit unit, GeoRadiusCommandArgs args) 根据给定的经纬度坐标和距离,在指定的键中查询范围内的地理位置元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
radius(key, longitude, latitude, distance, unit, args) |
查询范围内的地理位置元素 |
key:键名,longitude:中心点经度,latitude:中心点纬度,distance:距离,unit:距离单位,args:额外选项(可选) |
redisTemplate.opsForGeo().radius("key", 116.405285, 39.904989, 10, GeoUnit.KILOMETERS) |
在键"key"中查询以中心点(116.405285, 39.904989)为中心,半径为10千米范围内的地理位置元素 |
List<GeoLocation> |
radius(K key, V member, double distance, GeoUnit unit, GeoRadiusCommandArgs args) 根据给定的地理位置元素和距离,在指定的键中查询范围内的地理位置元素
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
radius(key, member, distance, unit, args) |
查询范围内的地理位置元素 |
key:键名,member:地理位置元素名称,distance:距离,unit:距离单位,args:额外选项(可选) |
redisTemplate.opsForGeo().radius("key", "member", 10, GeoUnit.KILOMETERS) |
在键"key"中查询以地理位置元素"member"为中心,半径为10千米范围内的地理位置元素 |
List<GeoLocation> |
hash(K key, V... members) 返回指定地理位置元素的 Geohash 字符串
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
hash(key, members) |
返回地理位置元素的 Geohash 字符串 |
key:键名,members:地理位置元素名称 |
redisTemplate.opsForGeo().hash("key", "member1", "member2") |
返回键"key"中地理位置元素"member1"和"member2"的 Geohash 字符串 |
List |
searchAndStore(K sourceKeyspace, RedisStoreCommands.CommandKeyword commandKeyword, GeoArgs args) 执行 Geo 搜索并将结果保存到另一个键中
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
searchAndStore(sourceKeyspace, commandKeyword, args) |
执行 Geo 搜索并保存结果 |
sourceKeyspace:源键空间,commandKeyword:命令关键字,args:Geo 搜索参数 |
redisTemplate.opsForGeo().searchAndStore("source", RedisStoreCommands.CommandKeyword.STORE, GeoArgs.Builder.geoRadius().radius(10, GeoUnit.KILOMETERS)) |
执行 Geo 搜索,并将结果保存到另一个键中 |
Long |
search(K key, GeoArgs args) 执行 Geo 搜索并返回搜索结果
方法 |
作用 |
参数说明 |
实例 |
实例说明 |
实例结果 |
search(key, args) |
执行 Geo 搜索并返回结果 |
key:键名,args:Geo 搜索参数 |
redisTemplate.opsForGeo().search("key", GeoArgs.Builder.geoRadius().radius(10, GeoUnit.KILOMETERS)) |
执行 Geo 搜索,并返回搜索结果 |
GeoResults<GeoLocation> |
本文作者:Kang_kin
本文链接:https://www.cnblogs.com/kangkin/p/17403488.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步