目录
Redis的下载与安装
链接:https://pan.baidu.com/s/15-d5Pvgns_7x6Ib1TLSsdw
提取码:redi
其中版本为:
首先下载Redis-x64-5.0.14.zip的压缩包,将其解压,得到:
启动服务的程序打开为:
连接服务的程序打开:
此时Redis安装完成,接下来安装Redis Desktop Manager(可视化界面)
两个版本都可以安装,此处我安装的是redis-desktop-manager-0.8.8.384版本。
直接下一步,自定义安装目录,简单的安装。
打开后为:
到此安装完毕~
Redis概述:
Redis 是一个基于内存运行的key-value数据的高性能NoSQL数据库
key是字符串类型,
而value有5种类型:
1.String类型
2.list类型
3.set类型
4.hash类型
5.zset类型
它的核心特点为:
Redis的服务器程序采用的是单进程模型来处理客户端的请求。
对读写时间的响 应是通过对epoll函数的包装来做到的。
常用命令:
String类型
(1)简介
字符串(string)是Redis最基本的类型,可以存储String,Integer,Float型的数据,
甚至是二进制数据,一个字符串最大容量是512M
(2)set命令
set 键值
》》》如果键不存在,就是添加
》》》如果键存在,就是修改
---A、设置取值
set name zs
set name lisi
---B、设置过期时间
setex name 20 123456
---C、设置多个键值对
mset key1 value1 key2 value2 key3 value3
---D、追加值
append key value
(3)get命令
A、获取单个值
get key1
B、获取多个值
mget key1 key2
(4)del命令
A、删除某个键
del key1
B、删除多个键
del key1 key2
(5)keys命令(查找键)
mset u1 aa u2 bb u3 cc
keys *
(6)exists命令(判断键是否存在)
如果存在返回1,不存在返回0
exists key
(7)type命令(查看键对应值的类型)
type key
(8)expire命令(设置键过期时间)
expire key seconds
案例:
set name zz
expire name 5
get name------------>(等一会儿..)
get name
或者是setex aaa 20(秒)123
(9)TTL命令(查看键有效时间)
TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
返回值:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。
list类型
(1)简介
(1)列表中的值(value)类型为字符串;
(2)字符串List,底层实现上不是数组,而是链表,也就是说在头部和尾部插入一个新元素,
其时间复杂度是常数级别的;其弊端是:元素定位比数组慢
(2)添加
从左侧插入值:
lpush key value1 value2
从右侧插入值:
rpush key value1 value2
(3)获取
返回列表里指定范围内的值
(1)索引从左侧开始,第一个值的索引为0;
(2)索引可以是负数,表示从尾部开始计数,如-1表示最后一个值;
(3)start,stop为要获取值的索引。
语法:lrange key start stop
例如:
(1)获取列表所有值
lrange key 0 -1
(2)从第三个元素开始获取到最后的值
lrange key 2 -1
实战:
lpush name 1 2 3
rpush name 4 5 6
lrange name 0 -1
lrange name 2 -1
(4)修改
设置指定索引位置的值
(1)索引从左侧开始,第一个值的索引为0;
(2)索引可以是负数,表示从尾部开始,-1代表最后一个值。
语法:lset key index value
实战:
lset name 1 aa
lrange name 0 -1
(5)删除
删除指定值
(1)将列表中前count次出现的值移除
(2)count>0:从头往尾删除
(3)count<0:从尾往头删除
(4)count=0:删除所有值
语法:irem key count value
(1)实战:
rpush born2 0 1 2 3 4 5 0 1 2 1 0 1 0 2 3 4 1 0 1 1 2
(2)查询列表
lrange born2 0 -1
(3)案例2:从键列表右侧开始删除1个2
lrem born2 -1 2
(4)查询列表
lrange born2 0 -1
(5):从键列表左侧开始删除2个2
lrem born2 2 2
(6)查询列表
lrange born2 0 -1
set类型
(1)简介
字符串Set,无序不可重复,是通过HashTable实现的。
(2)添加
sadd:添加元素,格式是SADD KEY_NAME VALUE1..VALUEN
127.0.0.1:0>sadd myset v1
127.0.0.1:0>sadd myset v1 #不得重复
127.0.0.1:0>sadd myset v2 v3 v4 #可以设置多个值
(3)获取
smembers:获取集合中所有元素,格式是SMEMBERS key
127.0.0.1:0>smembers myset #查询myset中的值有哪些
(4)判断
sismember:判断元素是否在集合中,格式是SISMEMBER KEY VALUE
127.0.0.1:0>sismember myset v1
127.0.0.1:0>sismember myset v11
(5)删除
srem:删除元素,格式是SREM KEY MEMBER1..MEMBERN
127.0.0.1:0>srem myset v1
127.0.0.1:0>srem myset v1
127.0.0.1:0>smembers myset
(6)获取元素个数
scard:获取集合中元素个数,格式是SCARD KEY_NAME
127.0.0.1:0>scard myset
(7)弹出(随机删除)
spop:弹出元素,格式是SPOP key [count]
127.0.0.1:0>spop myset
127.0.0.1:0>spop myset
127.0.0.1:0>spop myset
127.0.0.1:0>spop myset
127.0.0.1:0>smembers myset
(8)移动
smove:移动元素,格式是SMOVE SOURCE DESTINATION MEMBER
sadd myset v1 v2 v3
smembers myset
smove myset myset2 v3
smembers myset
smembers myset2
Hash哈希类型
(1)简介
按Hash方式来存放字符串
(2)设置值
单个
1.hset:设置一个值,格式是HSET KEY_NAME FIELD VALUE
案例:
127.0.0.1:0>hset myhash id 123
"1"
127.0.0.1:0>hset myhash name 321
"1"
多个
2.hmset:同时设置多对值,格式是HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN
案例:
hmset myhash name 322 age 8
(3)获取key下所有的值
hgetall:获取该key下所有的值,格式是HGETALL KEY_NAME
案例:
127.0.0.1:0>hgetall user
1) "id"
2) "999"
3) "name"
4) "zs"
5) "pwd"
6) "123456"
7) "pp"
8) "123"
9) "pop"
10) "234"
(4)获取单个key的值
hget:获取单个key的值,格式是HGET KEY_NAME FIELD_NAME
127.0.0.1:0>hget user name
"zs"
(5)获取多个key的值
hmget:同时获取多个值,格式是HMGET KEY_NAME FIELD1...FIELDN
案例:
127.0.0.1:0>hmget user pp pop
1) "123"
2) "234"
(6)删除
hdel:删除某个项,格式是HDEL KEY_NAME FIELD1.. FIELDN
MyConn:0>hdel user id
"1"
zset类型(有序集合)
(1)简介
字符串Set,有序且不可重复,根据Score来排序。
(2)添加
zadd:添加元素,格式是ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN,
score和项可以是多对,score可以是整数,也可以是浮点数,
还可以是+inf表示正无穷大,-inf表示负无穷大
案例:
zadd myzset 10 v1
zadd myzset 10 v1 20 v2 30 v3
zadd myzset 9 v1 20 v2 30 v3
(3)索引区间内元素
zrange:获取索引区间内的元素,格式是ZRANGE key start stop [WITHSCORES]
案例:
zrange myzset 0 -1
zrange myzset 0 -1 withscores
(4)获取分数区间内的元素
zrangebyscore:获取分数区间内的元素,格式是ZRANGEBYSCORE key min max [WITHSCORES] 案例:
zrangebyscore myzset 0 20 #代表大于等于0,小于等于20
zrangebyscore myzset 0 (20 #代表大于等于0,小于20
zrangebyscore myzset 0 (20 withscores #代表大于等于0,小于20,带分数
zrangebyscore myzset 20 +inf withscores #代表大于等于20,带分数
zrangebyscore myzset (20 +inf withscores #代表大于20,带分数
(5)删除元素
zrem:删除元素,格式是ZREM key member [member ...]
案例:
zrem myzset v1 v2 #删除v1,v2
zrangebyscore myzset 0 +inf withscores #获取所有的大于0的值和分数
(6)获取集合中的算数
zcard:获取集合中元素个数,格式是ZCARD KEY_NAME
案例:
zcard myzset
以上纯属个人整理,不足之处还望多多指导~
一个爱骑机车的码农敬上!!!