redis对键进行的相关操作
redis对键操作的相关命令以及如何在python使用这些命令
redis对键操作的命令:
|
命令 |
语法 |
概述 |
返回值 |
|
del key [key ...] |
该命令用于在 key 存在时删除 key。 |
返回被删除键的数量 |
|
|
dump key_name |
序列化给定 key ,并返回被序列化的值。 |
返回序列化后的值 |
|
|
exists key [key ...] |
检查给定 key 是否存在 |
若 key 存在返回 1 ,否则返回 0 。 |
|
|
expire key seconds |
为给定 key 设置过期时间,以秒计。 |
设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回0 |
|
|
expireat key timestamp |
为给定 key 设置过期时间,UNIX 时间戳(unix timestamp)。 |
设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 。 |
|
|
pexpire key milliseconds |
设置 key 的过期时间以毫秒计 |
设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 。 |
|
|
pexpireat key milliseconds-timestamp |
设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 。 |
|
|
keys pattern |
查找所有符合给定模式( pattern)的 key 。 |
返回符合给定模式的 key |
|
|
move key db |
将当前数据库的 key 移动到给定的数据库 db 当中 |
移动成功返回 1 ,失败则返回 0 |
|
|
persist key |
移除 key 的过期时间,key 将持久保持 |
当过期时间移除成功时,返回 1 。 如果 key 不存在或 key 没有设间,返回 0 |
|
|
pttl key |
以毫秒为单位返回 key 的剩余的过期时间。 |
当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时 间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。 |
|
|
ttl key |
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live) |
当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil |
|
|
randomkey |
从当前数据库中随机返回一个 key 。 |
改名成功时提示 OK ,失败时候返回一个错误。 |
|
|
rename key newkey |
修改 key 的名称 |
改名成功时提示 OK ,失败时候返回一个错误. |
|
|
renamenx key newkey |
仅当 newkey 不存在时,将 key 改名为 newkey 。 |
修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 当OLD_KEY_NAME 不存在时,返回错误ERR no such key |
|
| type key |
返回 key 所储存的值的类型 |
返回 key 所储存的值的类型。none (key不存在) string (字符串) list (列表) set (集合) zset (有序集) hash (哈希表) |
在python中对键操作:
# -*- coding: utf-8 -*- import redis # 连接本地的redis r = redis.Redis(host="127.0.0.1",port=6379)
1. delete DEL 命令用于删除已存在的键。不存在的 key 会被忽略
print(r.set('1', 'hello redis')) # set 设置指定 key 的值, 如果设置正确返回 True
print(r.get('1'))# 得到 键为1 的值 # hello redis
print(r.delete('1')) # 删除 键为1 的值
print(r.get('1')) # 因为上面已经把键为1 的值删除掉,所以返回的是None
2. exists
# 设定键为2的值是 hello redis
r.set('2', 'hello redis')
# 存在就返回True 不存在就返回False
print(r.exists('2')) # 返回True
print(r.exists('33')) # 返回False
3. Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
r.set('2', 'hello redis')
# 成功就返回True 失败就返回False,下面的20表示是20秒
print(r.expire('2',20))
# 如果时间没事失效我们能得到键为2的值,否者是None
print(r.get('2'))
4. Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。主意:时间精确到秒,时间戳是10为数字
r.set('2', 'hello redis')
# 成功就返回True 失败就返回False,下面的1598033936表示时间戳
print(r.expireat('2',1598026546))
print(r.get('2'))
5.PEXPIREAT 命令用于设置 key 的过期时间,已毫秒技。key 过期后将不再可用。主意:时间精确到毫秒,时间戳是13位数字
r.set('2', 'hello redis')
#成功就返回True 失败就返回False。
print(r.expireat('2',1598666972100))
print(r.get('2'))
6. Keys 命令用于查找所有符合给定模式 pattern 的 key 。
print(r.set('111', '11'))
print(r.set('122', '12'))
print(r.set('113', '13'))
print((r.keys(pattern='11*'))
# 输出的结果是 ['113', '111'] 因为键122不和 11* 匹配
7. MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中,select可以设定当前的数据库,如有需要请看select命令
因为我们默认使用的数据库是db0,我们可以使用下面的命令键 2 移动到数据库 1 中去
r.move(2,1)
8. PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期
# 设定键为 1 的值为11
print(r.set('1', '11'))
# 设定键 1 过期时间为100秒
print(r.expire(1,100))
# 查看键 1 的过期时间还剩下多少
print(r.ttl('1'))
# 目的是13秒后移除键 1 的过期时间
import time
time.sleep(3)
# 查看键 1 的过期时间还剩下多少
print(r.ttl('1'))
#移除键 1 的过期时间
r.persist(1)
# 查看键 1 的过期时间还剩下多少 输出的结果是 None,我们可以通过redis desktop manager 查看键 1 的过期时间
print(r.ttl('1'))
9. Pttl 命令以毫秒为单位返回 key 的剩余过期时间。
# 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。
# 设定键为 1 的值为11
print(r.set('1', '11'))
#设定键 1 过期时间为100秒
print(r.expire(1,100))
import time
time.sleep(3)
#返回的结果是 96994 ,运行的结果不是固定的,大于是97秒钟,主意是为了展示出返回的结果是毫秒,一秒等于1000毫秒
print(r.pttl('1'))
10. TTL 命令以秒为单位返回 key 的剩余过期时间。
# 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。
#设定键为 1 的值为11
print(r.set('1', '11'))
print r.expire(1,100) #设定键 1 过期时间为100秒
import time
time.sleep(3)
print(r.ttl('1')) #返回的结果是 97
print(r.ttl('123')) #因为键 123 不存在 所以返回的结果是None
11.RANDOMKEY 命令从当前数据库中随机返回一个 key。当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 。
print(r.randomkey()) # 数据库返回的是默认的数据库 key
12 .Rename 命令用于修改 key 的名称 。改名成功时提示 OK ,失败时候返回一个错误。
print(r.rename(1,1111)) #修改成功返回 True
print(r.rename(222,1111)) #如果key 不存在 修改失败返回 redis.exceptions.ResponseError: no such key
13. Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。
print(r.exists(123123)) # 返回false
print(r.renamenx(1111,123123)) # 成功返回True
print(r.renamenx(1111,123123)) # 失败返回 redis.exceptions.ResponseError: no such key
14. Type 命令用于返回 key 所储存的值的类型
# 返回 key 的数据类型,数据类型有:none (key不存在),string (字符串),list (列表),set (集合),zset (有序集),hash (哈希表),
print (r.set('1',"111111111"))
print (r.type('1')) # 返回的结果是string print r.sadd('2','222222222222')
print r.type('2') #返回的结果是set print r.lpush('3','33333333')
print r.type('3') #返回的结果是list
redis对键进行的相关操作的更多相关文章
- redis对sorted_set进行的相关操作
redis对sorted_set(有序集合)类型操作的相关命令以及如何在python使用这些命令 redis对sorted_set(有序集合)类型操作的命令: 命令 语法 概述 返回值 Redis Z ...
- redis对list进行的相关操作
redis对list类型进行的相关操作以及如何在python使用 redis对list类型操作的命令: 命令 语法 概述 返回值 Redis Blpop 命令 BLPOP key1 [key2 ] t ...
- redis对string进行的相关操作
redis对string类型操作的相关命令以及如何在python使用这些命令 redis对string类型操作的命令: 命令 语法 概述 返回值 Redis SET 命令 set key value ...
- redis对hash进行的相关操作
redis对hash类型操作的相关命令以及如何在python使用这些命令 redis对hash类型操作的命令: 命令 语法 概述 返回值 Redis Hdel 命令 hdel key field [f ...
- redis对set(无序集合)的相关操作
redis对set类型(无序集合)操作的相关命令以及如何在python使用这些命令 redis对set类型操作的命令: 命令 语法 概述 返回值 Redis Sadd 命令 sadd key memb ...
- [Redis]Redis的五种数据类型与键值/服务器相关命令
-------------------------------------------------------------------------------------- String(字符串):最 ...
- openresty 学习笔记三:连接redis和进行相关操作
openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...
- 深入理解Redis主键失效原理及实现机制
http://blog.jobbole.com/71095/ 对于缓存失效,不同的缓存有不同的处理机制,可以说是大同中有小异,作者通过对Redis 文档与相关源码的仔细研读,为大家详细剖析了 Redi ...
- Redis 安装,配置以及数据操作
Nosql介绍 Nosql:一类新出现的数据库(not only sql)的特点 不支持SQL语法 存储结构跟传统关系型数据库中那种关系表完全不同,nosql中存储的数据都是k-v形式 Nosql的世 ...
随机推荐
- localhost,127.x.x.x和 0.0.0.0区别
之前遇到过一件很纳闷的事,明明用webpack-dev-server监听了一个端口xx,用localhost:xx可以打开,但是依然可以在localhost:xx来启动另一个服务. 后来我看来了下we ...
- 【转】Nginx 学习笔记(十一)nginx下安装配置naxsi waf防火墙(附完整编译、配置)
原文地址:http://f2ex.cn/nginx-installed-configuration-naxsi-waf/ Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开 ...
- GIL全局锁测试
基础知识:https://www.cnblogs.com/SuKiWX/p/8804974.html 测试环境 python3.7默认解释器(cpython) cpu为四核 测试代码 #! /usr/ ...
- Python核心编程笔记 第二章
2.1 程序输出:print语句 可以使用print语句显示变量的字符串表示,或者仅用变量名查看该变量的原始值. 2.2 程序输出和raw_input()内建函数 ...
- STM32库函数void USART_SendData的缺陷和解决方法
void USART_SendData()函数在快速发送时存在问题 有丢数据的可能 转自https://blog.csdn.net/qq_27114397/article/details/506015 ...
- 背景上实现阴影——linear-gradient
/*从元素顶部有条阴影,两种方式,第二种更好,能控制阴影的宽度*/background-image: linear-gradient(0deg, rgba(226, 226, 226, 0) 97%, ...
- python基础之文件操作和函数
一.知识点 1.三元运算 a = 2 b = 3 val = 6 if a < b else 7 print(val) 2.文件读取 f = open(file='file.txt',mode= ...
- Python:python抓取豆瓣电影top250
一直对爬虫感兴趣,学了python后正好看到某篇关于爬取的文章,就心血来潮实战一把吧. 实现目标:抓取豆瓣电影top250,并输出到文件中 1.找到对应的url:https://movie.douba ...
- [经验交流] CentOS7 docker 使用 overlay 存储
关于 docker overlay 存储相比 device mapper 的优势,可以在 google 上搜索相关资料.在 ubuntu 16.04.2 上可以直接使用 overlay 存储,而在 C ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第八周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第八周学习总结 教材学习内容总结 -第十五章泛型与集合框架要点: 一.泛型 1.泛型(Generics)的主要目的是可以 ...