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 的监视