redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
redis 常用命令
1、redis 命令
-
ping redis 是否连接
-
select 数字 切换库(0-15)
2、redis key
-
set key value 设置key
-
type key 查看key 类型
-
keys * 查看当前库下的所有key
-
del key 删除key
-
rename key newkey 修改key的名字
-
exists key 查看key是否存在(1-存在,0-不存在)
-
randomkey 随机返回当前库下一个key
3、redis 字符串(String)
-
set key value 设置指定 key 的值
-
get key 获取指定 key 的值
-
getset key value 设置key的新值并反悔旧值
-
mget key1 key2 获取指定的多个key的值
-
setnx key value 只有当key 不存在时 设置key的值 (1 - 设置成功 ,0 - key 存在)
-
strlen key 查看key的长度
-
mset key value key value 设置多个key - value 的值
-
setex key seconds value 设置key的过期时间 按秒计算
-
psetex key milliseconds value 设置key的过期时间按毫秒计算
-
incr key 给key 加一,只能给数字加一
-
incrby key increment 给key 加上指定数字值
-
decr key 给key 减一
-
decrby key increment 给key减去指定的数字值
-
append key value 给指定的key 末尾追加字符串
4、redis 列表(List)
-
lpush key value value value 给list 的 key 设置值
-
lrange key 0 10 查看list 集合的数据
-
lindex key index 根据索引获取list中的数据
-
llen key 获取list集合的长度
-
lpush key value value 将一个或者多个值 插入list 开头位置
5、redis 集合(Set)
-
sadd key value value 想set 中添加一个或者多个值
-
scard key 查看set的数据个数
-
smembers key 查看set中元素值
-
srem key value value 移除set中一个或者多个值
6、redis 有序集合(sorted set)
-
zadd key score value score value 向有序集合添加一个或多个成员,或者更新已存在成员的分数
-
zcard key 获取有序集合的个数
-
zrange key 0 10 withscores 获取有序集合数据按照分数排序