使用Redis客户端
1 运行Redis
Redis安装步骤:https://www.jianshu.com/p/e16d23e358c0
命令行切换到Redis安装目录,输入 redis-server.exe redis.windows.conf
Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
解决方法:在命令行中运行
redis-cli.exe
127.0.0.1:6379>shutdown
not connected>exit
然后重新运行redis-server.exe redis.windows.conf,启动成功!
开启Redis服务器:redis-server.exe
连接到Redis服务器:redis-cli.exe
在Redis根目录下,启动另外一个窗口,准备输入Redis的命令
1.1 字符串类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
字符串类型设置 SET myKey myValue
获取字符串类型 GET myKey
1.2 键值对类型Hash
Redis hash 是一个键值(key=>value)对集合。特别可以存储Java中的对象。因为Java对象有若干个实体属性。
设值语法:HMSET MapName KeyA ValueA KeyB ValueB
取值语法:HGET MapName KeyName
键值对设值 HMSET myMap keyA valueA keyB valueB
键值对取值 HGET myMap keyA
HGET myMap keyB
1.3 List列表(队列)
Java中的List接口的最大特点就是有索引,即有序的。
Redis中的List类型,它与Java中类似。Redis的List类型的数据,它按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
设值语法(加入队列): LPUSH ListName Value
获取范围内的队列的值: LRANGE ListName startIndex endIndex
从结果来看,它是默认将新的数据插入到队列的头部。
为队列设置:LPUSH myList valueA
LPUSH myList valueB
LPUSH myList valueC
获取队列的指定范围的值:
LRANGE 0 10
获取队列头的元素:
LRANGE 0 0
1.4 SET集合
在Java中,SET接口的实现类是一个不包含重复元素的 collection。以前通过源代码也发现,HashSet其实就是一个HashMap。所以,SET接口的实现复杂度是O(1)。
在Redis中,Set是string类型的无序集合。相当于只存放Hash哈希类型的Key。
设值语法:SADD SetName Value
取值语法:SMEMBERS SetName
为SET集合设置: SADD mySet ValueA
SADD mySet ValueB
SADD mySet ValueC
遍历所有的SET集合:
SMEMBERS mySet
若Redis中已经存在此Key,返回0。没有的话,返回1。那究竟是覆盖呢,还是插入失败呢?
根据结果显示,好像重复插入没什么意义,最终的目的就是让这个SET集合里面存在这个KEY。返回值可能表示的是对指集合的影响,所以返回0就不足为奇。如果没对原结果集产生影响,那么就可理解为插入失败。
1.5 ZSET有序的不重复集合
可大致理解为LinkedHashMap,但是它是按照添加时分配的权重Score排序的。
每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
添加语法:ZADD SetName Score Value
为有序的Set集合插入数据:ZADD SSet 0 a
ZADD SSet 1 b
ZADD SSet 2 c
根据权重遍历指定区间的数据:
ZRANGEBYSCORE SSet 0 10 默认升序,什么是升序,就是权重越来越大。