一:Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
二:Redis 安装与连接
下载地址 https://github.com/MicrosoftArchive/redis/releases
将压缩包解压到磁盘某目录下,命令行进入,执行
redis-server.exe redis.windows.conf 启动服务
保持此窗口打开状态,另启一个命令窗口,进入解压目录,执行
redis-cli.exe -h 127.0.0.1 -p 6379[6379为默认端口]
我们也可以通过java连接,先下载jar包,这里我下载的是[jedis-2.9.0.jar]
需要注意的是,如果关闭上面第一个命令窗口,那么后续就无法连接了.
三:Redis 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
Hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
常用方法:
Lpush:将值插入到列表头部
Rpush:将值插入到列表尾部
Lpop:获取并移出列表的第一个元素
Rpop:获取并移出列表的最后一个元素
Ltrim:保留区间内的元素
Llen:获取列表长度
Lset:通过索设置取列表元素的值
Lindex:通过索引获取列表中的元素
Lrange:获取列表指定范围内的元素
Set(集合)
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
下面通过java演示一下操作
1:连接测试
运行结果
2:key操作
运行结果
超过10s后
3:操作String数据类型
运行结果:
4:操作List
list支持从左边[头]插入及从左边取出,以及从右边[尾部]插入及取出.
左增左取:lpush----lpop;
右增右取:rpush---rpop;
4_1:根据下标或者全量取出
运行结果:
使用rpush插入:
运行结果:
插入顺序为从尾部插入
4_2:移除
运行结果:
5:操作Hash列
执行结果: