Redis(二)【操作命令】
启动方式:
1)前台启动:./redis-server
2)后台启动:./redis-server &
关闭方式:
1)使用redis客户端关闭,向服务器关闭命令:./redis-cli shutdown(推荐,redis先完成现有的数据操作,再关闭)
2)kill pid 或者 kill -9 pid(不考虑是由有数据正在操作,直接关闭。先使用ps -ef | grep redis查出进程号,再kill pid)
指定IP和端口连接:./redis-cli -h 127.0.0.1 -p 6379
使用客户端连接Linux的Redis
连接Linux的Redis之前需要修改Redis服务器的配置信息,Redis服务器有安全保护措施,默认只有本机能够访问
配置信息存放在Redis安装目录下的redis.conf文件,使用vim修改文件中的两个配置:
1)bind.ip 绑定ip此行注解

2)protected-mode yes 保护模式改为no
(用vim命令修改redis.conf文件,修改文件前备份此文件,执行cp命令)
检查防火墙是否关闭:
查看当前防火墙状态:systemctl status firewalld
关闭当前防火墙:systemctl stop firewalld
开机防火墙不启动:systemctl disable firewalld
通过ifconfig指令找到Linux虚拟机的IP地址

Redis基本操作命令
1)沟通命令,查看状态
输入ping,返回pong

2)查看当前数据库中key的数目:dbsize
先使用select选择使用哪个库,默认使用[0]
3)redis默认使用16个库,可以在redis.conf配置文件中进行修改

Redis中Key的操作命令
1)keys pattern:找出所有符合模式pattern的key,pattern可以使用通配符
1.1)显示所有的key:keys *
1.2)使用*表示0或多个字符:keys wo*d ==>"word", "woood"
1.3)使用?表示单个字符:keys wo?d ==>"word", "wood"
2)exists key:判断key是否存在。
输入单个key,存在返回1,其他返回0
输入多个key,返回存在的key的数量
3)expire key seconds:设置key的生成时间,超过时间key自动删除,单位为秒
设置成功返回1,其他情况返回0
4)ttl key:返回key的剩余生存时间,返回单位为秒
返回数字即key的剩余时间
返回-1表示没有设置key的生存时间,key永不过期
返回-2表示key不存在
5)type key:查看key所存储的数据的数据类型
返回值为数据类型,包括:
null:key不存在
string:字符串类型
list:列表
set:集合
zset:有序集
hash:哈希表
6)del key:删除存在的key
返回值为删除的key的数量
Redis数据类型操作命令
String字符串类型基本命令:
1)set key value:将字符串value设置到key中
向已经存在value的key设置新的value,会覆盖掉以前的value
2)get key:获取key中设置的字符串值
3)incr key:将key中存储的数字加1,如果key不存在,那么key不存在,那么先初始化key的值为0,再执行incr操作
该操作只能对数字类型数据操作,否则会报error

4)decr key:将key中存储的数字减1,其他与incr相同
incr和decr主要运用在实现关注人数上以及文章点击数上等
5)append key value:如果key存在,则将value追加到key原来旧值的末尾;如果key不存在,则将key设值为value
6)strlen key:返回key所存储的字符串值得长度
返回值:如果key存在则返回字符串值的长度,如果key不存在则返回0
7)getrange key start end:获取key中字符串值从start开始到end结束的字符串,包括start和end,负数表示从字符串的末尾开始,-1表示最后一个字符
位置从0开始,当数字为负时最后一位是-1,当范围取值超过字符串范围时,获取合理的子串

8)setrange key offset value:用value覆盖(替换)key的存储的值从offset开始,不存在的key做空白字符串
返回值:修改后的字符串长度
9)mset key1 value2 key2 value2...:同时设置一个或多个key-value对
设置成功后返回OK

10)mget key1 key2...:同时获取一个或多个value
不存在的返回(nil)
hash:是一个一个String类型的field和value的映射表,hash特别适合存储对象
hash的基本命令:
1)hset hash表中的key field value:field-value即为hash值,被存放在表中的value
如果field是hash表中新field,且设置成功,则返回1
如果field已经存在,旧值覆盖新值,则返回0
2)hget key field:获取哈希表key中的field对应的值
返回对应的值,如果该field不存在,则返回(nil)
3)hmset key field1 value1 field2 value2...:同时设置多个field-value,此命令会覆盖已经存在的field,hash表key如果不存在,则创建新的hash表
设置成功则返回ok,失败返回错误
4)hmget key field1 field2...:获取hash表key中一个或多个给定域的值
返回和field顺序对应的值,如果field不存在,则返回(nil)
5)hgetall key:获取hash表key中所有的field-value
按条依次返回hash表key中的所有field-value,如果key不存在,返回空hash
6)hdel key field1 field2...:删除hash表key中所有的field-value,不存在的field直接忽略
返回成功删除的field的数量
7)hkeys key:查看hash表key中所有的field
返回包含所有 field 的列表,key 不存在返回空列表
8)hvals key:查看hash表key中所有的field所对应的value值,只返回value值
返回原理同上
9)hexists key field:查看hash表key中的field是否存在
如果存在则返回1,如果不存在则返回0
list:Redis 列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素导列表的头部(l)或者尾部(r)
list的基本命令:
1)lpush key value1 value2...:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头
返回值:数字,新列表的长度

其在Redis Desktop Manager上面显示为

其说明每一个元素都是依次从左边进行添加的
2)rpush key value1 value2...:与lpush除了方向相反以外其他一个意思
3)lrange key start stop:获取列表 key 中指定区间内的元素
0 表示列表的第一个元素,start和stop是列表的下标值,也可以负数的下标, -1 表示列表的最后一 个元素
start和stop超出列表的范围不会出现错误,会返回空列表
返回值就是指定区间的列表

以上显示的是列表中的第二个值,这个和mysql里的limit是一个道理
4)lindex key index:查看表中具体某下标的value值
不存在的下标返回(nil)
5)llen key:获取列表key的长度
返回key的长度,如果不存在则返回0
6)lrem key count value:根据参数 count 的值,移除列表中与参数 value 相等的元素
count >0 ,从列表的左侧向右开始移除
count < 0 从列表的尾部开始移除
count = 0 移除表中所有 与 value 相等的值

7)lset key index value::将列表 key 下标为 index 的元素的值设置为 value
设置成功返回 ok ; key 不存在或者 index 超出范围返回错误信息
8)linsert key BEFORE|AFTER pivot value:将值 value 插入到列表 key 当中位于值 pivot 之前或之后的位置。key 不存在,pivot 不在列表中,则不执行任何操作
:命令执行成功,返回新列表的长度。没有找到 pivot 返回 -1, key 不存在返回 0

set:redis 的 Set 是 string 类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据
set基本命令:
1)sadd key member1 member2...:将一个或多个 member 元素加入到集合 key 当中
已经存在于集合的 member 元 素将被忽略,不会再加入。
返回加入到集合的新元素的个数,不包括被忽略的元素。
2)smembers key:获取集合key中的所有成员元素
不存在的key视为空集合,返回空集合提示
3) sismember key member:判断member元素是否是集合key的成员
member是集合成员返回1,否则返回0
4)scard key:获取集合里面的元素个数
返回个数,集合不存在等情况返回0
5)srem key member1 member2...:删除集合key中的一个或者多个member元素,不存在的元素被忽略
返回删除成功的个数,不包括被忽略的个数
6)srandmember key count:只提供 key,随机返回集合中一个元素,元素不删除,依然在集合中;
提供了 count 时,count 正数, 返回包含 count 个数元素的集合,集合元素各不相同。
count 是负数, 返回一个 count 绝对值的长度的集合,集合中元素可能会重复多次。
7)spop key count:随机从集合中删除一个元素, count 是删除的元素个数
返回被删除的元素,key不存在或空集合返回(nil)
zset:有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
不同的是 zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中的 成员进行从小到大的排序。
zset的基本命令:
1)zadd key score1 member1 score2 member2...:将一个或多个member元素及其score值加入到有序集合key中,如果member存在集合中,则更新值;score可以是整数或浮点数
返回数字为新添加的元素个数
2)zrange key start stop [WITHSCORES] :查询有序集合,指定区间的内的元素。
集合成员按 score 值从小到大来排序。start, stop 都是从 0 开始。0 是第一个元素,1 是第二个元素,依次类推。以 -1 表示最后一 个成员,-2 表示倒数第二个成员。
WITHSCORES 选项让 score 和 value 一同返回。

3)zrevrange key start stop [WITHSCORES] :返回有序集 key 中,指定区间内的成员。
其中成员的位置按 score 值递减(从大到小)来排列。其它同 zrange 命令。
4)zrem key member1 member2:删除有序集合key中的一个或多个成员,不存在的成员被忽略
返回被成功删除的成员个数,被忽略的不被计入以内
5)zcard key:获取有序集合key的元素个数
返回key的元素个数,key不存在返回0
6)zrangebyscore key min max [WITHSCORES ] [LIMIT offset count] :
获取有序集key中,所有score值介于min和max之间(包括min和max)的成员,有序成员是按递增(从小到大)排序
min ,max是包括在内,使用符号( 表示不包括。 min,max 可以使用 -inf ,+inf 表示最小和最大
limit 用来限制返回结果的数量和区间
使用准备的数据

显示指定区间的数据

显示指定具体区间的集合数据,开区间(不包括 min,max)

显示整个集合的所有数据

使用limit

显示从第一个位置开始,取一个元素。

7)zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count] :
返回有序集key中,score值介于max和min之间(默认包括等于max或min)的所有的成员。有序集成员按score值递减(从大到小)的次序排列。
其他同 zrangebyscore
8)zcount key min max:返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员的数量

浙公网安备 33010602011771号