Redis:Redis 是完全开源免费的,遵守BSD协议,是一个高性能单线程基于内存的key-value数据库。
- REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
- Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
- 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
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的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
安装
Window 下安装
下载地址:https://github.com/MSOpenTech/redis/releases
Linux 下安装
下载地址:http://redis.io/download,下载最新文档版本。
Ubuntu 下安装
在 Ubuntu 系统安装 Redi 可以使用以下命令:
$sudo apt-get update
$sudo apt-get install redis-server
Mac 下安装
官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0
- 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0
- sudo mv 到 /usr/local/
- sudo tar -zxf redis-3.2.0.tar 解压文件
- 进入解压后的目录 cd redis-3.2.0
- sudo make test 测试编译
- sudo make install
可视化工具
- redis desktop manager
下载地址:https://redisdesktop.com/download
简单命令
启动 Redis
$ redis-server
查看 redis 是否启动?
$ redis-cli
在远程服务上执行命令
$ redis-cli -h host -p port -a password
key的简单命令
- DEL key
该命令用于在 key 存在时删除 key。 - DUMP key
序列化给定 key ,并返回被序列化的值。 - EXISTS key
检查给定 key 是否存在。 - EXPIRE key seconds
为给定 key 设置过期时间。 - EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。 - PEXPIRE key milliseconds
设置 key 的过期时间以毫秒计。 - PEXPIREAT key milliseconds-timestamp
设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 - KEYS pattern
查找所有符合给定模式( pattern)的 key 。 - MOVE key db
将当前数据库的 key 移动到给定的数据库 db 当中。 - PERSIST key
移除 key 的过期时间,key 将持久保持。 - PTTL key
以毫秒为单位返回 key 的剩余的过期时间。 - TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 - RANDOMKEY
从当前数据库中随机返回一个 key 。 - RENAME key newkey
修改 key 的名称 - RENAMENX key newkey
仅当 newkey 不存在时,将 key 改名为 newkey 。 - TYPE key
返回 key 所储存的值的类型。
redis中的事务
redis中也是有事务的,不过这个事务没有mysql中的完善,只保证了一致性和隔离性,不满足原子性和持久性。
redis事务使用multi、exec命令
- 原子性,redis会将事务中的所有命令执行一遍,哪怕是中间有执行失败也不会回滚。kill信号、宿主机宕机等导致事务执行失败,redis也不会进行重试或者回滚。
- 持久性,redis事务的持久性依赖于redis所使用的持久化模式,遗憾的是各种持久化模式也都不是持久化的。
- 隔离性,redis是单进程,开启事务之后,会执行完当前连接的所有命令直到遇到exec命令,才处理其他连接的命令。
网友评论