redis02---对于key的操作命令
- Redis对于key的操作命令
- del key1 key2 ... Keyn
- 作用: 删除1个或多个键
- 返回值: 不存在的key忽略掉,返回真正删除的key的数量
- rename key newkey
- 作用: 给key赋一个新的key名
- 注:如果newkey已存在,则newkey的原值被覆盖
- renamenx key newkey
- 作用: 把key改名为newkey
- 返回: 发生修改返回1,未发生修改返回0
- 注: nx--> not exists, 即, newkey不存在时,作改名动作
- move key db
- redis 127.0.0.1:6379[]> select 2
- OK
- redis 127.0.0.1:6379[]> keys *
- (empty list or set)
- redis 127.0.0.1:6379[]> select 0
- OK
- redis 127.0.0.1:6379> keys *
- 1) "name"
- 2) "cc"
- 3) "a"
- 4) "b"
- redis 127.0.0.1:6379> move cc 2
- (integer) 1
- redis 127.0.0.1:6379> select 2
- OK
- redis 127.0.0.1:6379[]> keys *
- 1) "cc"
- redis 127.0.0.1:6379[]> get cc
- "3"
- (注意: 一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号,
- 如果想打开更多数据库,可以从配置文件修改)
- keys pattern 查询相应的key
- 在redis里,允许模糊查询key
- 有3个通配符 *, ? ,[]
- *: 通配任意多个字符
- ?: 通配单个字符
- []: 通配括号内的某1个字符
- redis 127.0.0.1:6379> flushdb
- OK
- redis 127.0.0.1:6379> keys *
- (empty list or set)
- redis 127.0.0.1:6379> mset one 1 two 2 three 3 four 4
- OK
- redis 127.0.0.1:6379> keys o*
- 1) "one"
- redis 127.0.0.1:6379> key *o
- (error) ERR unknown command 'key'
- redis 127.0.0.1:6379> keys *o
- 1) "two"
- redis 127.0.0.1:6379> keys ???
- 1) "one"
- 2) "two"
- redis 127.0.0.1:6379> keys on?
- 1) "one"
- redis 127.0.0.1:6379> set ons yes
- OK
- redis 127.0.0.1:6379> keys on[eaw]
- 1)"one"
- randomkey 返回随机key
- exists key
- 判断key是否存在,返回1/0
- type key
- 返回key存储的值的类型
- 有string,link,set,order set, hash
- ttl key
- 作用: 查询key的生命周期
- 返回: 秒数
- 注:对于不存在的key或已过期的key/不过期的key,都返回-1
- Redis2.8中,对于不存在的key,返回-2
- expire key 整型值
- 作用: 设置key的生命周期,以秒为单位
- 同理:
- pexpire key 毫秒数, 设置生命周期
- pttl key, 以毫秒返回生命周期
- persist key
- 作用: 把指定key置为永久有效
- Redis字符串类型的操
- set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]
- 如: set a 1 ex 10 , 10秒有效
- Set a 1 px 9000 , 9秒有效
- 注: 如果ex,px同时写,以后面的有效期为准
- 如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
- nx: 表示key不存在时,执行操作
- xx: 表示key存在时,执行操作
- mset multi set , 一次性设置多个键值
- 例: mset key1 v1 key2 v2 ....
- get key
- 作用:获取key的值
- mget key1 key2 ..keyn
- 作用:获取多个key的值
- setrange key offset value
- 作用:把字符串的offset偏移字节,改成value
- redis 127.0.0.1:6379> set greet hello
- OK
- redis 127.0.0.1:6379> setrange greet 2 x //从2开始替换
- (integer) 5
- redis 127.0.0.1:6379> get greet
- "hexlo"
- 注意: 如果偏移量>字符长度, 该字符自动补0x00
- redis 127.0.0.1:6379> setrange greet 6 !
- (integer) 7
- redis 127.0.0.1:6379> get greet
- "heyyo\x00!"
- append key value
- 作用: 把value追加到key的原值上
- getrange key start stop
- 作用: 是获取字符串中 [start, stop]范围的值
- 注意: 对于字符串的下标,左数从0开始,右数从-1开始
- redis 127.0.0.1:6379> set title 'chinese'
- OK
- redis 127.0.0.1:6379> getrange title 0 3
- "chin"
- redis 127.0.0.1:6379> getrange title 1 -2
- "hines"
- 注意:
- 1: start>=length, 则返回空字符串
- 2: stop>=length,则截取至字符结尾
- 3: 如果start 所处位置在stop右边, 返回空字符串
- getset key newvalue
- 作用: 获取并返回旧值,设置新值,更新状态并且获取之前的状态。
- redis 127.0.0.1:6379> set cnt 0
- OK
- redis 127.0.0.1:6379> getset cnt 1
- "0"
- redis 127.0.0.1:6379> getset cnt 2 //设置2并且获得之前的1
- "1"
- incr key //每次加1
- 作用: 指定的key的值加1,并返回加1后的值
- 注意:
- 1:不存在的key当成0,再incr操作
- 2: 范围为64有符号
- incrby key number
- redis 127.0.0.1:6379> incrby age 90 //每次加90
- (integer) 92
- incrbyfloat key floatnumber
- redis 127.0.0.1:6379> incrbyfloat age 3.5 //当成浮点数相加
- "95.5"
- decr key //每次减一
- redis 127.0.0.1:6379> set age 20
- OK
- redis 127.0.0.1:6379> decr age
- (integer) 19
- 比如抢手机系统,先用redis内存数据库去减手机的数量,这样很快,然后用mysql慢慢去操作购买订单。
- decrby key number
- redis 127.0.0.1:6379> decrby age 3 //每次减3
- (integer) 16
- getbit key offset //在位的角度操作
- 作用:获取值的二进制表示,对应位上的值(从左,从0编号)
- redis 127.0.0.1:6379> set char A //A的ascii码值是65(0100 0001),a是97(0110 0001)
- OK
- redis 127.0.0.1:6379> getbit char 1
- (integer) 1
- redis 127.0.0.1:6379> getbit char 2
- (integer) 0
- redis 127.0.0.1:6379> getbit char 7
- (integer) 1
- redis 127.0.0.1:6379>setbit char 2 1 //就可以把A变成a,
- redis 127.0.0.1:6379>flushdb //刷新内存
- setbit key offset value
- 设置offset对应二进制位上的值
- 返回: 该位上的旧值
- 注意:
- 1:如果offset过大,则会在中间填充0,
- 2: offset最大大到多少,最大offset是n,那么最大(n+1)位,
- 3:offset最大2^32-1,可推出最大的的字符串为512M
- bitop operation destkey key1 [key2 ...]
- 对key1,key2..keyN作operation,并将结果保存到 destkey 上。
- operation 可以是 AND 、 OR 、 NOT 、 XOR
- redis 127.0.0.1:6379> setbit lower 7 0
- (integer) 0
- redis 127.0.0.1:6379> setbit lower 2 1
- (integer) 0
- redis 127.0.0.1:6379> get lower
- " "
- redis 127.0.0.1:6379> set char Q
- OK
- redis 127.0.0.1:6379> get char
- "Q"
- redis 127.0.0.1:6379> bitop or char char lower
- (integer) 1
- redis 127.0.0.1:6379> get char
- "q"
- 注意: 对于NOT操作, key不能多个
redis02---对于key的操作命令的更多相关文章
- Redis对于key的操作命令
del key1 key2 ... Keyn 作用: 删除1个或多个键 返回值: 不存在的key忽略掉,返回真正删除的key的数量 rename key newkey 作用: 给key赋一个新的ke ...
- Redis 学习(一) —— 安装、通用key操作命令
一.Redis介绍 1.介绍 通常,在系统中,我们会把数据交由数据库来存储,但传统的数据库增删查改的性能较差,且比较复杂.根据 80/20 法则,百分之八十的业务访问集中在百分之二十的数据上.是否可以 ...
- Redis数据库之KEY的操作与事务管理
目的 了解并掌握各种数据类型的命令操作方式,以及各种数据类型值的操作方式.同时,主要培养对KEY的操作命令运用的能力.重点掌握对KEY信息的管理.事务常规管理和事务回滚操作. KEYS命令的练习,对K ...
- Redis入门(三)-Redis的安装及操作key的命令介绍
前两节对Redis做了一些详细的介绍,那么接下来开始我们就正式进入Redis的学习阶段. 安装Redis Windows下安装redis非常方便, 下载压缩包解压即可使用. 链接:https://pa ...
- Redis 02: redis基础知识 + 5种数据结构 + 基础操作命令
Redis基础知识 1).测试redis服务的性能: redis-benchmark 2).查看redis服务是否正常运行: ping 如果正常---pong 3).查看redis服务器的统计信息: ...
- Redis PHP通用类
找到一个比较全的Redis PHP操作类库,分享给大家 <?php /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时,才会 ...
- Redis的使用完整版
[Redis基本] 1.redis安装完成后的几个文件: redis-benchmark 性能测试工具(批量写入)./bin/redis-benchmark -n 10000 即可一次性写入100 ...
- php redis数据库操作类
<?php namespace iphp\db; use iphp\App; /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时, ...
- php-redis 操作类 封装
<?php /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时,才会返回false. * 这点可用于防止缓存穿透 * */ cla ...
随机推荐
- POJ 1067: Wythoff Game【博弈】
经典的威佐夫博奕把黄金分割常数乘以k(k=m-n)即为奇异点,此时奇异点是用小数据观察出来的,具体的数学证明,观察到黄金分割常数是无理数,再加上高斯函数[kφ]的形势将自然数分割成两个等价类很容易想到 ...
- 算法复习——2—sat(bzoj2199)
题目: Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 ...
- 算法复习——欧拉回路混合图(bzoj2095二分+网络流)
题目: Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车 ...
- P2014 选课 (树形动规)
题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门课有个学分,每门课有一 ...
- websql使用实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- VMware 如何通过现有虚拟机克隆新的虚拟机 (图文)
本文做的是克隆主机,并重命名主机名,做好主机名与IP的对应关系,并可以通过主机名访问对方的主机. 首先说一下克隆虚拟机的作用 克隆虚拟机的作用 因工作需要,需要用到多个虚拟机环境时,再新建几个比较麻烦 ...
- Compose
安装与卸载 Compose 支持 Linux.macOS.Windows 10 三大平台. Compose 可以通过 Python 的包管理工具 pip 进行安装,也可以直接下载编译好的二进制文件使用 ...
- POJ 3080 多个串最长公共子序列
求多个串最长公共子序列,字典序最小输出.枚举剪枝+kmp.比较简单,我用find直接查找16ms #include<iostream> #include<string> #in ...
- (入门SpringBoot)SpringBoot项目数据源以及整合mybatis(二)
1.配置tomcat数据源: # 数据源基本配置spring.datasource.url=jdbc:mysql://localhost:3306/shoptest?useUnicode=true ...
- spring boot 文件上传大小配置
在启动类中,添加bean import javax.servlet.MultipartConfigElement; import org.springframework.boot.SpringAppl ...