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:字符串类型命令的更多相关文章

  1. Redis之字符串类型命令

    String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 ...

  2. Redis 常用命令学习二:字符串类型命令

    1.赋值与取值命令 127.0.0.1:6379> set foo helloredis OK 127.0.0.1:6379> get foo "helloredis" ...

  3. redis学习笔记-02 list列表类型命令

    一.lpush key value1 value2 value3 value4(命令将一个或多个值插入到列表头部. 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作) lpush k1 ...

  4. 15天玩转redis —— 第二篇 基础的字符串类型

    我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞给char[]数组的. 如果你真的这么想的话 ...

  5. Redis 常用数据结构及其控制命令整合

    Redis 键值支持5种基本结构,分别是字符串,列表,哈希,集合,有序集合.每一种数据结构都有对应的取值和设值命令,辅助命令,除此之外,还有一些全局命令,用来管理Redis存储的所有 键. 全局命令 ...

  6. Redis 入门 3.2.4 命令拾遗

    Redis 入门 3.2 字符串类型 3.2.4 命令拾遗 1. 增加指定的整数 INCRBY key increment   INCRBY命令与INCR命令基本一样,只不过前者可以通过increme ...

  7. Redis入门---字符串类型

    阅读目录 1.keys * 命令 2.判断一个键是否存在(exists key) 3.删除键 4.获取键值的数据类型 5 递增数字(incr) 6.增加指定的整数 (INCRBY) 7.减少指定的整数 ...

  8. 【命令】Redis常用命令整理

    doc 环境下使用命令:       keys 命令         ?    匹配一个字符         *    匹配任意个(包括0个)字符         []    匹配括号间的任一个字符, ...

  9. Redis常用命令整理

    doc 环境下使用命令:       keys 命令         ?    匹配一个字符         *    匹配任意个(包括0个)字符         []    匹配括号间的任一个字符, ...

随机推荐

  1. jdbc的实例应用:增删查改实现

    //在jdbc中进行增删查改 //查看所有 public static void findAll() { String url = "jdbc:mysql://localhost:3306/ ...

  2. flag+文件操作

    flag标志位,标识位,在其他语言中可能叫开关,个人觉得当作开关更容易理解.下面我们来利用这个开关来控制文件操作的流程,从而优雅的修改配置文件. global log 127.0.0.1 local2 ...

  3. 对c++ public、protected、private关键字的理解

    首先要明确一下: 1.这三个关键字在两种地方会用到,一个是对类的成员变量和成员函数修饰时(比如私有的成员变量,受保护的成员变量·,公有的函数),还有一种是对继承方式的修饰(比如公有继承,保护继承). ...

  4. OFDM学习之旅

    前言: 这些日子开始准备搞OFDM之类的,未动先行matlab仿真,这里我会慢慢更新,基本上是自己学习感悟吧<未完待续> 一.PRBS PRBS 是 Pseudo Random Binar ...

  5. 简单讲解MVC(视图/模型/控制器)

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  6. centos6.x开机卡死

    问题描述: centos6.x开机卡死在进度条处 远程登录,查看系统日志,看看卡在哪儿 通过远程连接,tail -fn 20 /var/log/messages 发现报错: init: prefdm ...

  7. CSS3简单的小技巧:linear-gradient切角画册

    关于linear-gradient的语法就不多做介绍了网上到处都是,下面看个小例 我们先做一个渐变,使其让他旋转, <div class="example"> < ...

  8. XSS常用技巧

    一般发现一个xss漏洞后要做的基本上就是这些: 1. 伪造请求 使用$_REQUEST或$_GET 首先我们要找找该网站使用的程序是不是在网上能找到源码,如果能找到源码的话,就去分析后台管理员更改密码 ...

  9. linux实用命令语句

    du -sh ./* 作用:检索当前目录下的所有文件及文件夹的大小,或者"du -sh 文件名/*","du -sh 文件夹名/*"查看某个文件或文件夹的大小 ...

  10. gulp入门演练

    一直想学习下gulp看了蛮多资料,然后总是感觉是是而非,突然开窍了,把自己学会的过程给大家分享下,入门超级简单的 gulp安装 安装gulp 如果参数-g 表示全局安装 $ npm install g ...