安装Redis:
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar xzf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make
进入src目录启动redis-server命令如下:
$ ./redis-server
打开redis-client命令:
$ ./redis-cli
如果需要在远程redis服务器上执行命令,同样我们使用的也是redis-cli命令:
语法格式如下:
$ redis-cli -h host -p port -a password
设置Redis密码:
127.0.0.1:6379> config set requirepass 123456
测试密码:
127.0.0.1:6379> info
NOAUTH Authentication required
127.0.0.1:6379> set x 0
(error)NOAUTH Authentication required
提示无权限。使用密码授权登录
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set x 0
OK
127.0.0.1:6379> get x
"0"
Redis数据类型:
支持五种:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)。
1. string
应一个value。string 类型是二进制安全的。意思是Redis的string 可以包含任何数据。sting是Reds最基本的类型,你可以理解成与Memeached-一样的类型, 个 keyx对比如
jpg图片或者序列化的对象。一个键最大能存储512MB.
代码实例如下:
redis 127.0.0.1:6379> set name "Spring Boot Plus Rotlin"OK
redis 127.0.0.1:6379> get name"spring Boot Plus Kotlin"
在以上实例中我们使用了Redis的set和get命令。键为name,对应的值为"SpringBoot Plus Kotlin"。
2. hash
Redis中的hash是一个键值(key-=>value) 对集合。Redis hash是一个string类型的field和value的映射表,hash 适用于存储对象。
代码实例如下:
redis> HMSET myhash fieldl "Hello. field2 "world""OK"
redis> HGET myhash field1"Hello"
redis> HGET myhash field2World"
以上实例中hash数据类型存储了包含用户脚本信息的用户对象。实例中我们使用了Redis HMSET, HGETALL 命令,user: 1为键值。每个hash可以存储的键值对为2^32-1。
3. List
Redis中的list是简单的字符串列表,按照插人顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
代码实例如下:
127.0.0.1:6379> lpush mylist redis
(integer) 1.
127.0.0.16379> Ipush mylist springboot
(integer) 2
127.0.0.1:6379> lpush mylist kotlin
(integer) 3
127.0.0.1:6379>lpush mylist kotlin
(integer) 4
127.0.0.1:6379> Irange mylist 0 10
1) "kotlin"
2) "kotlin"
3) "springboot"
4) redis"
列表最多可存储的元素为2^32-1。
4. set
Redis的set是sring类型的无序集合。集合是通过哈希表实现的,所以添加,删除查找的复杂度都是0(1)。
使用sadd命令添加一个string元素到key对应的set集合中,成功返回1,如果元素已经在集合中返回0,如果key对应的set不存在则返回错误。
向集合添加一个或多个成员命令:
SADD key memberl [member2]
代码示例:
127.0.0.1:6379> sadd myset redis
(integer) 1
127.0.0.1:6379> sada myset springboot
(integer) 1
127.0.0.1:6379> sadd myset kotlin
(integer) 1
127.0.0.1:6379> sadd myset kotlin
(integer) 0
获取集合的成员数:
SCARD key
代码示例:
127.0.0.1:6379> scard myset
(integer) 3
返回集合中的所有成员:
SMEMBERS key
代码示例:
127.0.0.1:6379>smembere myset
1) "kotlin"
2) *redis"
3) "spr ingboot"
注意:以上实例中kotlin添加了两次,但根据集合内元素的唯一性,第二次插人的元素将被忽略。集合中最大的成员数为2^32 - 1。
5. zset
Redis zset和set-样,也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。zset 的成员是唯-一的,但分数(score)却可以重复。集合是通过哈希表实现的。所以添加、 删除、查找的复杂度都是O(1)。 集合中最大的成员数为2^32-1。
代码实例如下:
127.0.0.1:6379> ZADD mysortedset 1 redis
(integer) 1
127.0.0.1:6379> ZACD mysortedset 2 mongodb
(integer) 1
127.0.0.1:6379> ZADD mysortedset 3 mysql
(integer) 1
127.0.0.1:6379> ZADD myscrtedset 3 mysql
(integer) 0
127.0.0.1:6379> ZA2D myscrtedeet 4 mysql
(integer) 0
127.0.0.16379> ZRANGE mysoxtedset 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) “4"
在以上实例中我们通过命令ZADD向redis的有序集合中添加了二个值并关联上分数。我们重复添加了MySQL,分数以最后添加的元素为准。