redis键值操作
1.1. redis键值操作
1.1.1. keys patten 查询相应的key
可以精确的查,也可以模糊的查
1.1.1.1. 通配符:* ? []
在redis里,模糊查询key的时候有3个通配符可以用:* ? []
* 通配任意多个字符
?通配单个字符
[] 通配[]内的某一个字符
127.0.0.1:6379> keys *
1) "site"
2) "animal"
127.0.0.1:6379> keys a*
1) "animal"
127.0.0.1:6379> keys site
1) "site"
127.0.0.1:6379> keys anima[len]
1) "animal"
127.0.0.1:6379> keys anima[enk]
(empty list or set)
注:*表示0或多个任意字符
1.1.1.2. keys * 获取所有的键值
设置值:
127.0.0.1:6379> set site www.baidu.com
OK
127.0.0.1:6379> set 'animal' 'cat'
OK
获取值:
127.0.0.1:6379> get 'animal'
"cat"
获取所有的键(key):
127.0.0.1:6379> keys *
1) "site"
2) "animal"
(若没有设置key,则返回:(empty list or set))
1.1.1.3. randomkey 返回随机key
127.0.0.1:6379> randomkey
"site"
127.0.0.1:6379> randomkey
"site"
127.0.0.1:6379> randomkey
"animal"
127.0.0.1:6379> randomkey
"site"
1.1.1.4. exists key 判断是否存在
注:如果key存在返回1;不存在返回0
127.0.0.1:6379> type name
string
127.0.0.1:6379> type age
string
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists ag
(integer) 0
127.0.0.1:6379> exists n
(integer) 0
1.1.1.5. type key 返回key存储的值的类型
Key存储的值的类型有:string、link、set、order set、hash
127.0.0.1:6379> set 'name' 'tom'
OK
127.0.0.1:6379> set 'age' 20
OK
127.0.0.1:6379> type name
string
127.0.0.1:6379> type age
string
1.1.1.6. del key1 [key2 key3...keyn] 删除key
作用:删除一个或多个key(键)
返回值:返回真正删除的key的数量,不存在的key忽略掉
127.0.0.1:6379> keys *
1) "name"
2) "site"
3) "animal"
4) "age"
127.0.0.1:6379> del site
(integer) 1
127.0.0.1:6379> del animal
(integer) 1
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> exists site
(integer) 0
127.0.0.1:6379> exists animal
(integer) 0
127.0.0.1:6379> del a
(integer) 0
127.0.0.1:6379> del age cc
(integer) 1
1.1.1.7. rename key newkey 修改key的名字
作用:给key赋一个新的key名
注:如果newkey已存在,则newkey的原值被覆盖
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> rename age nianling
OK
127.0.0.1:6379> keys *
1) "nianling"
2) "name"
127.0.0.1:6379> exists age
(integer) 0
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> get nianling
"20"
127.0.0.1:6379> rename nianling name
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"20"
1.1.1.8. renamenx key newkey 修改key的名字
作用:newkey不存在时,把key改名为newkey
返回值:修改时返回1;不修改时返回0
注:nx--->not exists,即newkey不存在时,做改名动作
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "a"
127.0.0.1:6379> renamenx age a
(integer) 0
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "a"
1.1.1.9. move key db
注:redis默认开启了16个数据库(可以通过修改配置文件进行修改)
redis安装目录(如:/usr/local/redis/)下的配置文件redis.conf中的:databases 16
127.0.0.1:6379> keys * #默认用的是0号数据库
1) "name"
2) "age"
3) "a"
127.0.0.1:6379> select 1 #注:切换到1号数据库
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
把0号数据库的key移动到1号数据库中:
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "a"
127.0.0.1:6379> move age 1
(integer) 1
127.0.0.1:6379> keys *
1) "name"
2) "a"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "age"
1.1.2. key的生命周期:
memcached中的数据做缓存的,都有一个有效期(生命周期);redis中可以做存储(持久),也可以设置有效期
1.1.2.1. ttl key 查询key的生命周期
返回值:秒数
注:
不过期的key,返回-1
对于不存在的key、已过期的key,返回-2
127.0.0.1:6379> keys *
1) "name"
2) "a"
127.0.0.1:6379> ttl a
(integer) -1
127.0.0.1:6379> ttl cat
(integer) -2
127.0.0.1:6379> ttl c
(integer) -2
1.1.2.2. expire key整型值
作用:设置key的生命周期以秒为单位
注:pexpire key毫秒数设置生命周期
pttl key 以毫秒返回生命周期
127.0.0.1:6379> ttl a
(integer) -1
127.0.0.1:6379> expire a 2
(integer) 1
127.0.0.1:6379> get a
(nil)
127.0.0.1:6379> ttl a
(integer) -2
127.0.0.1:6379> expire a 9
(integer) 1
127.0.0.1:6379> ttl a
(integer) 6
127.0.0.1:6379> ttl a
(integer) 5
127.0.0.1:6379> ttl a
(integer) 4
1.1.2.3. persist key 设置key永久有效
作用:把指定key设置为永久有效
127.0.0.1:6379> expire age 15
(integer) 1
127.0.0.1:6379> ttl age
(integer) 12
127.0.0.1:6379> persist age
(integer) 1
127.0.0.1:6379> ttl age
(integer) -1
1.2. flushdb 清空当前数据库中所有的key
注:此命令从不失败,返回值:总是返回ok
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
redis键值操作的更多相关文章
- php数组键值操作和数组统计函数-函数
1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...
- php课程 4-17 数组键值操作函数有哪些
php课程 4-17 数组键值操作函数有哪些 一.总结 一句话总结:多看学习视频 1.php中数组的键值操作函数有哪6个? • array_values();获取数组中的值• array_keys( ...
- redis 键值对 有效期设置
redis 键值对 有效期设置redis中可以使用expire命令设置一个键的生存时间, 到时间后redis会自动删除它<-----> 类比于javaweb系统临时数据 过期删除功能 ex ...
- redis基础之基本键值操作和使用(三)
前言 redis安装完毕后开始使用redis,先熟悉命令行操作. redis数据的类型 键:redis的所有的键都是string类型: 值:五种类型 string:字符串类型:一个string最大可以 ...
- 【redis常用的键值操作及性能优化】
服务端 启动redis服务 { // -a:指定密码 -h:指定主机 -p:指定端口 } //让redis 服务中断崩溃 //保存和关闭 //后台备份 //设置登录密码 //redis-benchma ...
- python 对redis 键值对的操作
我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Ha ...
- Redis 键值数据类型及基本操作
到目前为止,Redis 支持的键值数据类型如下: 字符串(String) 哈希(Map) 列表(list) 集合(sets) 有序集合(sorted sets) 1. String 字符串类型 s ...
- 7.Redis键值对数据库
1.Redis的安装以及客户端连接 安装:apt-get install redis-server 卸载:apt-get purge --auto-remove redis-server 启动:red ...
- Redis键值设计(转载)
参考资料:https://blog.csdn.net/iloveyin/article/details/7105181 丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DB ...
随机推荐
- mysql的时间戳timestamp精确到小数点后六位
1.mysql的时间戳timestamp精确到小数点后六位. 公司业务使用到Greenplun数据库,根据查询的时间戳来不断的将每个时间段之间的数据,进行数据交换,但是今天发现,mysql的时间戳没有 ...
- CentOS7中Docker-ce的卸载和安装
一.查看是否已安装了Docker软件包: #查看是否已经安装的Docker软件包sudo yum list installed | grep docker 二.如果已安装不想要的docker/dock ...
- 有关centos7 图形化root用户登录
好久不用的虚拟机开机后,是图形化登录界面,原来是命令行界面,后来安装和图形化 结果使用我记录的root密码死活登录不了,心想是不是时间久了忘记了root密码 然后开始尝试各种单用户修改root密码,再 ...
- Nginx Java 日志切割脚本
Nginx日志切割脚本: #!/bin/bash ########################################################################### ...
- SQLServer中处理亿万级别的数据
在SQLServer中处理亿万级别的数据(历史数据),可以按以下方面进行: 去掉表的所有索引 用SqlBulkCopy进行插入 分表或者分区,减少每个表的数据总量 在某个表完全写完之后再建立索引 正确 ...
- PUTTY工具的使用
Putty工具包简单使用 一.Putty简介 Putty是一款远程登录工具,用它可以非常方便的登录到Linux服务器上进行各种操作(命令行方式).Putty完全免费,而且无需安 装(双击即可运行),支 ...
- net core体系-网络数据采集(AngleSharp)-1初探
有这么一本Python的书: <<Python 网络数据采集>> 我准备用.NET Core及第三方库实现里面所有的例子. 这是第一部分, 主要使用的是AngleSharp: ...
- 51Nod1231 记分牌 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1231.html 题目传送门 - 51Nod1231 题意 题解 显然是一个竞赛图相关的题. 我们首先 ...
- Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中
Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中 python 的基本用法请浏览:https://www.cnblogs.com/ibingshan/p/98564 ...
- 用sql的avg(score)求完平均值后,保存两位小数的方法(用于查询或视图)
查jx_score表的平均值,以哪次考试(testid)和科目分组(courseid) select testid, courseid, round(avg(`jx_score`.`score`),2 ...