even

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、redis数据类型

redis是以key-value的形式存储数据的

key无论如何都是字符串类型

value支持如下五种数据类型

  • 字符型(String)
// String (字符串)

格式:key  value

示例:set  name  even  // 表示把name设置为even

读取:get name   // 表示读取name的值
  • 哈希(Hash)
// Hash (哈希)

格式: key  field value  // 可以把hash看作是Map或者对象, 该类型是无序的

设置值: hset  user name even // 设置user对象的name为even

读取值: hget user name  // 读取user中name的值
  • 列表(List)
// List (列表)

List 相当于javascript中的array, List是有序的

格式: key  value1 value2 value3

设置值: lpush list aaa bbb ccc   // 初始化list列表,并且往里面添加 aaa bbb ccc三个值

获取所有值: lrange list 0 -1
  • 无序集合(Sets)
  • 有序集合(Sorted Sets)

通常来讲,redis会帮用户创建16个数据库, 默认会使用第0个数据库

select 1  //选择索引为1的数据库

 

2、redis的keys类型

keys  *:  返回所有的键名

?:匹配一个字符

*:匹配任意个(包括0个)字符

[]:匹配括号间多大任一个字符,可以使用“-”表示范围,如[a-z]

具体实例:

 2.2 randomkey

随机的返回一个key, 注意:返回的是 key 而不是 值!

具体实例1:随机返回一个键名

 2.3 exists key

语法:EXISTS key

检查给定 key 是否存在。如果存在,那么返回1,如果不存在,那么返回0

具体实例:

 2.4expire

语法:EXPIRE key seconds

作用:为给定 key 设置过期时间

具体实例:

2.5 pexpire key

语法: pexpire key milliseconds

作用:为给定key设置过期时间,不过是以毫秒为单位

具体实例:

 2.6 ttl key

语法: ttl key

作用:返回给定 key 的剩余生存时间(TTL, time to live),以为时间。

具体实例

 2.7 pttl key

语法:pttl key

毫秒为单位返回 key 的剩余的过期时间

具体实例:

 2.8 type

语法: type key

作用: 返回存储时的值的类型

返回 key 的数据类型有:

1)       none (key不存在)

2)       string (字符串)

3)       list (列表)

4)       set (集合)

5)       zset (有序集)

6)       hash (哈希表)

具体实例:

 2.9 rename

语法:RENAME key newkey

修改重命名key 的名称 => 注意这里修改的是key而不是值

具体实例:

 2.10 sort 排序

sort key

sort limit offset count

sort key asc

sort key desc

返回或保存给定列表、集合、有序集合key中经过排序的元素

 2.11 persist

语法:PERSIST key

移除 key 的过期时间,key 将持久保持

具体实例

 

 2.12 del

语法:DEL key

该命令用于在 key 存在时删除 key

具体实例

 2.13 move

MOVE key db

将当前数据库的 key 移动到给定的数据库 db 当中

 

2.14  flushdb

只清空当前数据库的所有操作

 

2.15  flushall

清空所有的数据库,一般不推荐该的操作

 

2.16  dbsize

统计当前数据的总数

 

3、字符串类型

通过set设置的都是字符串类型

3.1 set

SET key value

设置指定 key 的值

具体实例:

 3.2 get

GET key

获取指定 key 的值

具体实例

 3.3 setnx

SETNX key value

Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。 如果设置不存在的,返回1表示成功,0表示失败

具体实例:

 3.4 mset

M:multiple

MSET key value [key value ...]

同时设置一个或多个 key-value 对

具体实例:

 3.5 mget

MGET key1 [key2..]

获取所有(一个或多个)给定 key 的值

具体实例:

 3.6 msetnx

MSETNX key value [key value ...]

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在,注意:要都不存在才可以设置成功

 3.7 setrange

从索引位置替换或者是覆盖

SETRANGE key offset value

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始, 从0开始计数的

具体实例

 3.8 getrange(截取字符串)

GETRANGE key start end

返回 key 中字符串值的子字符 最后一个数字是结束位置

具体实例

 3.9 getset

GETSET key value

将给定 key 的值设为 value ,并返回 key 的旧值(old value), 相当于不改变key,把key所对应的值进行替换掉新值,并且返回旧值

 3.10 setex

语法:SETEX key seconds value

设置指定 key 的值,同时设置过期时间,单位

具体实例:

 3.11 psetex

PSETEX key milliseconds value

设置指定 key 的值,同时设置过期时间,单位毫秒

 3.12 append

APPEND key value

如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾

具体实例

 3.13 incr

INCR key

将 key 中储存的数字值增一,并且返回的是递增后的值, 如果值不存在,那么会自动添加,并且初始值为0

具体实例:

 3.14 incrby

INCRBY key increment

将 key 所储存的值加上给定的增量值(increment),返回的是递增后的值

具体实例:

 3.15 decr

DECR key

将 key 中储存的数字值减一, 返回的是递减后的值, 如果值不存在,那么会自动添加,并且初始值为0

具体实例:

 3.16 decrby

DECRBY key decrement

key 所储存的值减去给定的减量值(decrement),返回的是递减后的值

具体实例:

 3.17 strlen

STRLEN key

返回 key 所储存的字符串值的长度

具体实例:

 3.18 incrbyfloat

INCRBYFLOAT key increment

将 key 所储存的值加上给定的浮点增量值(increment),如果是减少小数的的话,用incrbyfloat key -num来操作

具体实例

 

 4、list列表类型

 4.1 lpush

从左侧添加数据)(先添加的会往数据中间挤,后添加的放在最左边)

LPUSH key value [value ...]

将值value插入到列表key的表头

具体实例:

 同时也可以push多个值进入数组

 4.2 rpush(从右侧开始添加数据)

RPUSH key value [value ...]

将值value插入到列表key的表尾

具体实例:

 4.3 lpushx

LPUSHX key value

将值value插入到列表key的表头,当且仅当key存在并且是一个列表, 同时不能添加多个值只能一个一个添加

具体实例

 4.4 rpushx

RPUSHX key value

将值value插入到列表key的表尾,当且仅当key存在并且是一个列表

具体实例

 4.5 lpop

LPOP key

移除并返回列表key的头元素

具体实例

 4.6 rpop

RPOP key

移除并返回列表key的尾元素

具体实例:

 4.7 blpop

BLPOP key [key ...] timeout

LPOP命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被BLPOP命令阻塞,直到等待超时或发现可弹出元素为止

 4.8 brpop

BRPOP key [key ...] timeout

RPOP命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被BRPOP命令阻塞,直到等待超时或发现可弹出元素为止

 4.9 llen

LLEN key

返回列表key的长度

 

 4.10 lrange(查看数据)

LRANGE key start stop

返回列表key中指定区间内的元素,区间以偏移量startstop指定

具体实例1

 具体实例2

 4.11 lset(修改数据)

LSET KEY index value

将列表key下标为index的元素的值至为value

具体实例:

 4.12 lindex

LINDEX key index

返回列表key中,下标为index的元素

 4.13 ltrim

LTRIM key start stop

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

具体实例:

 4.14 linsert

LINSERT key BEFORE|AFTER pivot value

将值value插入到列表key当中,位于值pivot之前或之后

具体实例:

 上面的例子是表示把grape插入到peach后面

 4.15 lrem

REM:remove

LREM key count value

根据参数count的值,移除列表中与参数value相等的元素

count > 0: 从表头开始向表尾搜索,移除与value相等的元素,数量为count

count < 0: 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值

count = 0: 移除表中所有与value相等的值。根据值移除

具体实例:

 注意在使用list的时候,如果需要设置list的过期时间,那么可以使用string上在的函数 如expire arr 20 进行设置, 其他功能一样可以使用

posted on 2020-04-17 07:52  even_blogs  阅读(155)  评论(0编辑  收藏  举报