Redis概述与经常使用指令

Redis使用二-指令

环境:redis-5.0.3,centos605正则表达式

概述

  • Redis是一个高速的nosql内存数据库,本质是内存中的数据结构存储系统,存储形式为K-V对
  • 键(Key)类型为String字符串,值(Value)支持5种类型:字符串、列表、集合、散列表、有序集合
  • Redis的数据正常操做存取在内存,也支持持久化(如硬盘),经过复制提升读性能,分片提升写性能。
  • 读写性能很是高,可频繁读写,支持自增自减运算

数据类型及经常使用命令

数据类新

数据类型 存储 说明
STRING 字符串、整数或者浮点数 最基本的数据类型,能够包含任意数据类型。
LIST 列表 简单的字符串列表,迟滞双端操做
HASH 包含键值对的无序散列表 String 类型的无序集合
SET 无序集合 元素无序惟一,哈希表实现
ZSET 有序集合 string类型元素的集合,每一个元素关联一个double类型的分数,支持排序(sorted set),元素惟一,分数(score)能够重复

通用命令

一、启动。默认端口:6379redis

redis-server redis-5.0.3/redis.conf 
redis-cli
127.0.0.1:6379>ping
pong
复制代码

二、set,建立K-V对,默认为值类型为字符串sql

127.0.0.1:6379> set k1 v1
OK
复制代码

三、get,查询,没有返回nil数据库

127.0.0.1:6379> get k1
"v1"
复制代码

四、rename ,重命名centos

127.0.0.1:6379> rename k1 k0
OK
127.0.0.1:6379> get k1
(nil)
127.0.0.1:6379> get k0
"v1"
复制代码

五、del,删除,返回影响的行数,不会报错bash

127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> del k1
(integer) 0
复制代码

六、dump,序列化,不存在数据结构

127.0.0.1:6379> dump k1
"\x00\x02v1\t\x00\x8f\x17\xe1\x92\x9f\xd6\x1a\xea"
127.0.0.1:6379> dump k2
(nil)
复制代码

七、exists,是否存在,1有0无app

127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> exists k2
(integer) 0
复制代码

八、ttl,获取剩余活跃时间(time to live),-1无过时时间,-2键不存在dom

127.0.0.1:6379> ttl k1
(integer) -1
127.0.0.1:6379> ttl k2
(integer) -2
复制代码

九、expire,设置剩余有效时间/s,1为设置成功,不存在返回0nosql

127.0.0.1:6379> 
127.0.0.1:6379> expire k1 10
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 8
127.0.0.1:6379> ttl k1
(integer) 5
127.0.0.1:6379> ttl k1
(integer) 3
127.0.0.1:6379> ttl k1
(integer) -2
127.0.0.1:6379> expire k2 10
(integer) 0
复制代码

十、keys,条件查询,条件为正则表达式,key *获取全部键

127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> set k5 v5
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k5"
4) "k1"
5) "k2"
复制代码

十一、randomkey,随机返回一个键

127.0.0.1:6379> randomkey
"k3"
127.0.0.1:6379> randomkey
"k2"
复制代码

十二、谨慎使用flushdb 清空数据库,flushall 清空全部数据库

学习下列命令时,可联系对比Java中类似对象类型的操做,便于记忆

String命令

命令 说明 正确返回
strlen key 获取key的值的长度 键长度值
getset key value 给定已存在的 k 设为 v ,并返回 key 的旧值 原k-v对
mset k1 v1[k2 v2...] 批次设置多个k-v对 ok
mget k1 [k2 k3..] p批量获取k的值 value值
append k1 v99 追加值 现value的总长度
incrby number 步长,增长,value值为数字形式 增长后value值
decrby number 减小 j减小后value值

List命令

命令 说明
lpush k1 v1[k2 v2...] 将一个或多个值插入到列表头部
rpush k1 v1[k2 v2...] 将一个或多个值插入到列表尾部
lrange key start stop 获取列表指定范围内的元素
llen key 获取列表长度
ltrim key start stop 保留列表指定区间内的元素
blpop k1[k2] timeout 移出并获取列表的第一个元素, 若是无元素会阻塞,直到等待超时或有元素。

Hash命令

命令 说明
hgetall 获取在哈希表中指定 key 的全部字段和值
hkeys 获取全部哈希表中的字段
hmset key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。
hdel key field1 [field2] 删除一个或多个哈希表字段
hincrby key field increment 指定字段的整数值加上步长

Set命令

命令 说明
sadd key member1 [member2] 向集合添加一个或多个成员
scard key 获取key集合的成员数
sismember key member 判断 member 元素是不是集合 key 的成员
spop key 移除并返回集合中的一个随机元素
srandmember key [count] 返回集合中一个或多个随机数
sinter k1[k2] 返回全部集合的交集
sdiff k1[k2] 返回全部集合的差集

Zset命令

命令 说明
zcard key 获取有序集合的成员数
zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcount key min max 统计集合中分数在min和max之间的元素个数
zscore key member 获取有序集合中元素对应的分数
zrank 获取元素在集合中的排名,从小到大,最小的是0
zrevrange key start stop [WITHSCORES] 返回有序集中指定区间内的成员,经过索引,分数从高到底
zscan key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素

本文只举了一些经常使用指令,更多命令请参考redis.io/commands

相关文章
相关标签/搜索