Write the Code. Ch|

Kang_kin

园龄:4年5个月粉丝:2关注:9

2023-05-15 23:39阅读: 177评论: 0推荐: 0

Redis-py和Redistemplate常用命令

python相关配置

  • 安装包

pip3 install redis

  • 导入

import redis

  • 连接

redis.StrictRedis('127.0.0.1', 6379, 0, password=123456)

spring相关配置

  • 引入maven
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  • yml配置使用lettuce作为客户端
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());

       // 设置Hash类型键的序列化器
       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 中国大陆许可协议进行许可。

posted @   Kang_kin  阅读(177)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起