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中指定区间内的元素,区间以偏移量start和stop指定
具体实例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 进行设置, 其他功能一样可以使用