1.Redis 介绍

Redis是一款内存高速缓存数据库,全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写。Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。它的读取速度可高达110000次/s,写速度高达81000次/s。

Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。

基于诸多特性,使得Redis的应用非常广泛。所以我们对于掌握redis的基本使用是必要的,下边就是作者整理的一些redis中常用命令操作

2. 基本数据类型

2.1 基本命令

help                       -查看帮助
select 1                   -切换数据库到 1 一共有16个(0-15)
keys *                     -查看所有的key
dbsize                     -查看key数量
set key value              -创建
get key                    -查看
del key                    -删除
exists key                 -查看key是否存在
type key                   -查看key类型
move key 2                 -移动一个key到索引为2的数据库
expire key 10              -设置过期时间为10秒 默认是-1
pexpire key 10             -设置10毫秒过期
persist key                -删除过期时间
ttl key                    -查看剩余过期时间 
flushall                   -清空数据库

2.2 String 字符串类型 

help @string               -命令帮助
set key value              -创建 
get key                    -查看
getrange key  0  1         -截取字符串 start end
getset key new_key         -设置值 并返回旧值
mset k1 v1 k2 v2           -批量设置
mget k1 k2                 -批量获取
setnx key value            -不存在就插入 
setex key time value       -过期时间 
setrange key index value   -从index开始替换value
incr key                   -递增 1
incrby key 10              -递增 10
decr key                   -递减 1
decrby key 10              -递减 10
incrbyfloat                -增减浮点数
append key new_value       -追加
strlen key                 -长度

2.3 Hash 双列集合类型 

help @hash                  -命令帮助
hset name key value         -添加一个键值对
hget name key               -取出值
hmset name k1 v1 k2 v2      -批量创建 
hmget name k1 k2            -批量查看
hgetall name                -获取所有的键值对
hexists name key            -是否存在
hsetnx name score 100       -不存在的话创建,存在的话修改
hincrby name id 1           -追加id为1
hdel name key               -删除
hkeys name                  -只取key
hvals name                  -只取value
hlen name                   -长度

2.4 List 列表类型 

help @list                  -命令帮助
lpush name a b c d          -左插入
rpush name e f g h          -右插入
lrange name 0  1            -查看指定范围 start end
lpop name                   -依次弹出元素
rpop name                   -依次弹出元素
llen name                   -长度
lrem name count n           -根据值n来删除 count为个数
lindex name 2               -指定索引的值
lset name 2 n               -指定索引设值n
ltrim name 1 2              -截取指定的元素集合
linsert name before 1 n     -在值为1前面插入n值
linsert name after 1 n      -在值为1的后面插入n值
rpoplpush list list2        -将list的最后一个元素移到list2中

2.5 Set 无序单列集合类型

sadd name n                 -创建元素n
smembers name               -数据集合
srem name n                 -删除n
sismember name n            -判断元素n是否在集合中
scard name                  -获取set集合中元素个数
sdiff name                  -返回集合的差集
sinter name                 -返回集合的交集
sunion name                 -返回集合的并集
srandmember name            -随机获取集合中的元素
spop name                   -从集合中弹出一个元素

2.6 Zset 有序单列集合类型

zadd name 1 one                                    -添加一个元素(1表示score,用作排序使用)
zadd name 2 two                                    -添加一个元素(2表示score,用作排序使用)
zadd name 3 three                                  -添加一个元素(3表示score,用作排序使用)
zincrby name 1 one                                 -score+1
zscore name two                                    -获取score
zrevrange                                          -倒叙获取所有的值
zrange name 0 -1                                   -获取全部的值
zrange name 0 -1 withscores                        -获取全部值并附带分数
zrangebyscore name 10 25 withscores                -分数在某个范围的值
zrangebyscore name 10 25 withscores limit 1 2      -分页
zrevrangebyscore name 10 25 withscores             -指定范围的值从大到小排序
zcard name                                         -元素数量
zcount name 1 3                                    -获得指定分数范围内的元素个数
zrem name one two                                  -删除一个或多个元素
zremrangebyrank name 0 1                           -按照排名范围删除元素
zremrangebyscore name 0 1                          -按照分数范围删除元素元素

 常用的5大类的命令都整理在这里了,下边的是一些补充

3. 客户端操作

auth password               -验证密码
echo message                -打印字符串
ping                        -查看服务是否运行
quit                        -关闭当前连接
select index                -切换到指定的数据库
client LIST                 -返回连接到 redis 服务的客户端列表
client SETNAME              -设置当前连接的名称
client GETNAME              -获取当前服务名称
client PAUSE                -挂起客户端连接,以毫秒计
client KILL                 -关闭客户端连接

4. 事务操作

multi                       -标记一个事务块的开始
exec                        -执行所有事务块内的命令
discard                     -取消事务,放弃执行事务块内的所有命令
watch                       -监视多个 key 
unwatch                     -取消 WATCH 命令对所有 key 的监视