Redis常用命令入门1:字符串类型命令
Redis总共有五种数据类型,在学习的时候,一定要开一个redis-cli程序,边看边练,提高效率。
一、最简单的命令
1、获得符合规则的键名列表
keys *
这里的*号,是指列出所有的键,同时*号也可以替换成其他支持glob风格通配符格式,具体规则如下:
?:匹配一个字符
*:匹配任意个(包括0个)字符
[]:匹配括号间多大任一个字符,可以使用“-”表示范围,如[a-z]
\x:匹配字符x,用于转义,如需匹配问号,需要\?才能匹配
这里说明一下,redis命令是不区分大小写的,还有就是keys命令是需要遍历Redis中所有的键的,当键很多时,很耗费性能的。所以在生产环境中要尽可能的不用。
例:
redis 127.0.0.1:> set name "joan"
OK
redis 127.0.0.1:> get name
"joan"
redis 127.0.0.1:> set aaa
OK
redis 127.0.0.1:> set bbb
OK
redis 127.0.0.1:> keys *
) "aaa"
) "name"
3) "bbb"
2、判断键是否存在
exists foo
如果存在返回证书类型1,否则返回0
例:
redis 127.0.0.1:> exists name
(integer)
redis 127.0.0.1:> exists n
(integer)
3、删除键
del foo
返回的是删除的键的个数,这里说明也可以一次删除多个键,只需空格再加键就可以了。例如:
del foo bar
如果删除一个键,这个键已经不存在了就会返回0 。
例:
redis 127.0.0.1:> keys *
) "aaa"
) "name"
) "bbb"
redis 127.0.0.1:> del aaa bbb
(integer)
redis 127.0.0.1:> del aaa
(integer)
4、获得键值的数据类型
type foo
这里在重复一下上次说过的,redis的数据类型有:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。
下面开始详细介绍每种数据类型的命令。
二、字符串类型
字符串类型是Redis中最基本的数据类型,他能存储任意形式的字符串,包括二进制数据。字符串类型也是其他四种数据类型的基础。也就是说,其他四种数据类型都是由字符串类型所组成的。
常用命令如下:
set key value #赋值,返回值是OK
get key #取值,返回值是对应键的值
incr key #递增数字,虽然是字符串类型,但如果可以是整型的话,也是可以使用此命令递增的,返回值是递增后的值,递增操作后,再次获取该key值,值为新值。
例:
redis 127.0.0.1:> get age
""
redis 127.0.0.1:> incr age
(integer)
redis 127.0.0.1:> get age
""
incrby key number #这个命令和上一个类似,只不过可以通过number指定增长的数量,返回值同样是增长后的值
例:
redis 127.0.0.1:> incrby age
(integer)
redis 127.0.0.1:> get age
""
decr key #递减数字,类似递增,这里不做过多解释了
decrby key number #类似于incrby,这里大家应该可以猜到,decrby key number和incrby key -number是一个意思
incrbyfloat key floatnumber #增加指定浮点数,这个是增加一个双精度的浮点数,位数多了就会不准
append key value #向尾部追加值,如 append foo ” value”,这个时候用引号是为了标识有空格,返回值为值的总长度
例:
redis 127.0.0.1:> append name 'hello'
(integer)
redis 127.0.0.1:> get name
"joanhello"
strlen key #获取字符串值总长度,返回值就是长度,如果key不存在,则返回0
mget key [key ...] #同时获得多个键值,键值的列表
例:
redis 127.0.0.1:> mget name age float
) "joanhello"
) ""
) "33.33"
mset key value [key value ...] #同时设置多个键值,成功返回OK
redis 127.0.0.1:> mset name "joan" age float 33.33
OK
redis 127.0.0.1:> mget name age float
) "joan"
) ""
) "33.33"
setbit/getbit #这个是位操作,具体示例如下:
redis set foo bar
OK
这时赋值给foo值为bar,对应的ASCII码为98、97、114,转换为八位二进制为:
01100010、01100001、01110010
进行如下操作:
redis> getbit foo redis> getbit foo redis> getbit foo redis> getbit foo
所以getbit就是获取key对应的字符串类型键值指定位置的二进制的值(0或1),索引从0开始。
如果获取超出了最大值,也返回0.
而相反,setbit就是来设置key对应的指定位置的二进制值的。返回值是该位置的旧值。例如
redis> setbit foo
(integer)
如果要设置的值超过了最大长度,则命令会将最大长度之后到最大长度之间未设置的值统一设置为0,同理,设置一个不存在的键值,也会自动把它前面所有未设置的位置二进制设为0。如:
redis> setbit qqq
(integer)
则会把qqq对应的值变为00000001 。
bitcount key 命令可以返回字符串类型键值中二进制值为1的个数。
同时他的参数还可以设置查询的范围,
bitcount foo 0 1 #意思是只查询ba两个字节中包含二进制值为1的个数。
最后一个bitop命令,可以进行位操作。
bitop OR res foo1 foo2 #意思是把foo1和foo2做OR运算,结果存入res中。bitop支持的位操作有ND、OR、XOR、NOT四个。
字符串的操作命令就这些了。位的命令还是很有用的,比如我们在存储性别的时候可以把性别的类型设置为一个比特位,这样超级省空间的。
Redis常用命令入门1:字符串类型命令的更多相关文章
- Redis之字符串类型命令
String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 ...
- Redis 常用命令学习二:字符串类型命令
1.赋值与取值命令 127.0.0.1:6379> set foo helloredis OK 127.0.0.1:6379> get foo "helloredis" ...
- redis学习笔记-02 list列表类型命令
一.lpush key value1 value2 value3 value4(命令将一个或多个值插入到列表头部. 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作) lpush k1 ...
- 15天玩转redis —— 第二篇 基础的字符串类型
我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞给char[]数组的. 如果你真的这么想的话 ...
- Redis 常用数据结构及其控制命令整合
Redis 键值支持5种基本结构,分别是字符串,列表,哈希,集合,有序集合.每一种数据结构都有对应的取值和设值命令,辅助命令,除此之外,还有一些全局命令,用来管理Redis存储的所有 键. 全局命令 ...
- Redis 入门 3.2.4 命令拾遗
Redis 入门 3.2 字符串类型 3.2.4 命令拾遗 1. 增加指定的整数 INCRBY key increment INCRBY命令与INCR命令基本一样,只不过前者可以通过increme ...
- Redis入门---字符串类型
阅读目录 1.keys * 命令 2.判断一个键是否存在(exists key) 3.删除键 4.获取键值的数据类型 5 递增数字(incr) 6.增加指定的整数 (INCRBY) 7.减少指定的整数 ...
- 【命令】Redis常用命令整理
doc 环境下使用命令: keys 命令 ? 匹配一个字符 * 匹配任意个(包括0个)字符 [] 匹配括号间的任一个字符, ...
- Redis常用命令整理
doc 环境下使用命令: keys 命令 ? 匹配一个字符 * 匹配任意个(包括0个)字符 [] 匹配括号间的任一个字符, ...
随机推荐
- Java中ProcessBuilder应用实例
系列说明 浅析Java.lang.Runtime类 浅析Java.lang.Process类 浅析Java.lang.ProcessBuilder类 可以使用java中的ProcessBuilder执 ...
- ASP.net如何保证EF操作类线程内唯一
说到线程内唯一,肯定会想到单例模式,但是如果多用户访问网站就会出现问题.ASP.net中有两种方法可以保证EF操作类线程内唯一(目前只会这两种,以后有好的方法再添加): 1.httpcontext(实 ...
- Oracle找回删除的记录
select * from table AS OF TIMESTAMP systimestamp - 1/24/2; 用这个sql可以找回table表半小时前的记录,最后的时间可以改,但是太久了估计是 ...
- centos 更换 yum源
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS系统更换软件安装源第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos ...
- 使用maven搭建SpringMVC项目环境
Window环境下用maven新建一个项目: mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=cn-cisol -Dartif ...
- Mac Mail PGP Setup 如何在苹果电脑上设置安全邮件 良好隐私密码法(英语:Pretty Good Privacy,缩写为PGP)
背景知识 良好隐私密码法(英语:Pretty Good Privacy,缩写为PGP),一套用于讯息加密.验证的应用程序,采用IDEA的散列算法作为加密与验证之用. 关联文献:https://en.w ...
- append追加的使用
#!/usr/bin/env python def fun(arg) : ret = [] for i in range(len(arg)) : if i % 2 ==1 : ret.append(a ...
- linux驱动中printk的使用注意事项
今天在按键驱动中增加printk(KERN_INFO "gpio_keys_gpio_isr()\n");在驱动加载阶段可以输出调试信息,但驱动加载起来后的信息,在串口端看不到输出 ...
- 开始学习Angular Mobile UI
介绍 Mobile AngularUI 可以让你使用Twitter Booostrap和Angular JS来开发混合移动App和桌面应用程序. 下面是是一些贯穿整个项目的步骤,我强烈的建议你去继续阅 ...
- python之前端
一.Html总结 1.Html简介 HTML 是一种标记语言 忽略大小写,语法宽松 使用 HTML 标记和元素,可以: 控制页面和内容的外观 发布联机文档 使用 HTML 文档中插入的链接检索联机信息 ...