1.redis安装、配置和启动
mac brew 安装
brew install redis
安装目录
/usr/local/Cellar/redis/
服务器端
which redis-server
/usr/local/bin/redis-server
//从/usr/local/Cellar/redis/3.2.8/bin/redis-server外链过来
server配置文件
/usr/local/etc/redis.conf
配置项说明
daemonize yes //前台启动 server 还是后台启动 server,一般选择后台启动
port 7200 //多实例和安全问题,需要对端口号进行修改默认是6379
启动并加载配置
sudo /usr/local/Cellar/redis/3.2.8/bin/redis-server /usr/local/etc/redis.conf
查询是否启动
ps aux|grep redis-server
客户端
which redis-cli
/usr/local/bin/redis-cli
从/usr/local/Cellar/redis/3.2.8/bin/redis-cli外链过来
启动客户端
redis-cli --help //根据帮助使用以下命令连接服务器(原端口号已经修改过的)
redis-cli -h 127.0.0.1 -p 7200
查询redis信息和状态
连接成功后使用 info
测试redis server是否启动
➜ bin git:(master) ✗ redis-cli ping
Could not connect to Redis at 127.0.0.1:6379: Connection refused
➜ bin git:(master) ✗ redis-cli -h 127.0.0.1 -p 7200 ping
PONG
2.Redis数据类型
五种数据类型
String
存储的值
可以是字符串、整数或者浮点。统称为元素
读写能力
对字符串操作对整数类型的加减
set 和 get 操作
127.0.0.1:7200> set string1 muyong
OK
127.0.0.1:7200> get string1
"muyong"
整型的自增操作和减操作
自增命令 incr 根据自己整型自增1
127.0.0.1:7200> set string2 5
OK
127.0.0.1:7200> get string2
"5"
127.0.0.1:7200> incr string2
(integer) 6
127.0.0.1:7200> get string2
"6"
减命令 decrby 参数2代表减2
127.0.0.1:7200> decrby string2 2
(integer) 4
127.0.0.1:7200> get string2
"4"
List
存储的值
一个序列集合且每个节点都包好了一个元素
读写能力
序列两端推入,或弹出元素 修减、查找或移除元素
push 和 pop 操作
list 的存储像队列,头和尾,用左和右来代表 所以就有了
127.0.0.1:7200> lpush list1 11
(integer) 1
127.0.0.1:7200> lpush list1 22
(integer) 2
127.0.0.1:7200> lpush list1 33
(integer) 3
其中 l 代表 left 相对的也有 r
127.0.0.1:7200> rpush list1 11
(integer) 1
push表示进,那么 pop 代表出,那么就和先进先出,后进先出的原则相匹配了,
127.0.0.1:7200> lpop list1
"33" //左边弹出第一个数据,返回值为33
获取当前列表的长度
127.0.0.1:7200> llen list1
(integer) 2 // 当前 list1长度为2
Set
存储的值
各不相同的元素
读写能力
从集合中插入或者删除元素
sadd 插入和 srem 删除元素
sadd 插入
127.0.0.1:7200> sadd set1 11
(integer) 1 //插入成功返回值
127.0.0.1:7200> sadd set1 22
(integer) 1
127.0.0.1:7200> sadd set1 33
(integer) 1
srem删除
127.0.0.1:7200> srem set1 33
(integer) 1 //删除成功返回值
127.0.0.1:7200> srem set1 33
(integer) 0 //删除失败返回值
scard 判断有多少个元素
127.0.0.1:7200> scard set1
(integer) 2
sismember 判断某个元素是否在set里面
127.0.0.1:7200> sismember set1 33
(integer) 1 //存在的返回值
127.0.0.1:7200> srem set1 33
(integer) 1
127.0.0.1:7200> sismember set1 33
(integer) 0 //不存在的返回值
Hash
存储的值
有 key-value的散列组,其中 key 是字符串,value是元素
读写能力
按照 key进行增加删除
HSET 插入/修改
127.0.0.1:7200> hset hash1 key1 12
(integer) 1
127.0.0.1:7200> hset hash1 key2 12
(integer) 1
127.0.0.1:7200> hset hash1 key3 12
(integer) 1
//修改 hash1中 key1的值
127.0.0.1:7200> hset hash1 key1 13
(integer) 0
HGET获取值
127.0.0.1:7200> hget hash1 key2
"12"
127.0.0.1:7200> hget hash1 key1
"13"
HMGET 获取多个值
127.0.0.1:7200> hmget hash1 key1 key2 key3
1) "13"
2) "12"
3) "12"
HLEN查看HASH长度
127.0.0.1:7200> hlen hash1
(integer) 3
Sort Set
存储的值
带分数的score-value有序集合,其中score为浮点,value为元素
- 存储和hash一样,都是一个映射。存储的是分数与元素的映射。可以看出是排行榜。
value必须是全局唯一。
读写能力
集合插入,按照分数范围查找
ZADD添加和修改
添加
127.0.0.1:7200> zadd z1 9.5 val1
(integer) 1
127.0.0.1:7200> zadd z1 7.5 val2
(integer) 1
127.0.0.1:7200> zadd z1 13 val3
(integer) 1
修改
127.0.0.1:7200> zadd z1 10 val2
(integer) 0
ZCARD查看元素个数
范围排名
zrange z1 0 2 withscorres // 前三最低开始排序,并带上分数(值)。参数:withscorres.当val2和val3值相等时,那么按字母序排列(val2,val3:val一样,2比3小,所以排前面)
redis 127.0.0.1:7200> zrange z1 0 1
1) "val3"
2) "val1"
redis 127.0.0.1:7200> zrange z1 0 1 withscores
1) "val3"
2) "2.2999999999999998"
3) "val1"
4) "6.0999999999999996"
某个排名
redis 127.0.0.1:7200> zrank z1 val3
(integer) 0