redis安装 & 数据类型

2021-03-21  本文已影响0人  慕知

一,缓存数据库介绍

1,缓存数据库用处

1,提升访问速度
2,减少数据库访问过多导致负荷

2,常用的缓存数据库

Memcached:
优点:免费,知识分布式,支持多核多线程
缺点:支持的数据类型单一;数据量到了一定量且当时访问量也增加的时候,无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复
杂度高。

Redis:
优点:数据类型丰富;在大数据面前,延时很低;
缺点:不支持多核多线程,但是可以使用多实例避免此情况

tair(淘宝开发)
优点:支持分布式,支持多核,数据类型丰富
缺点:生态系统做的不是很好(遇到问题百度搜索基本找不到,需要自己解决)

3,redis介绍

redis没有windows版本(一般服务器都是linus版本)


特点:
1,高性能(高速度读写);
2,数据类型丰富;
3,支持持久化;
4,回收策略(a=b,比如设置过期时间1小时,数据库更新a=c,1个小时候会重新去数据库读取最新数据);
5,支持简易版消息队列(支持阻塞式读取,可以很容易的实现
一个高性能的优先队列);
6,支持高可用(支持故障自动转移);

二,redis安装

官网  https://redis.io/

企业一般使用5. 版本(较稳定)




1,下载链接
[root@\ redis~]# wget https://download.redis.io/releases/redis-6.2.1.tar.gz



2,解压包
[root@\ redis~]# tar -xf redis-6.2.1.tar.gz -C /usr/local/



3,编译安装
(Redis 是跨平台的缓存服务器,所以在不同的平台上安装各异。一般情况下我们需要下载源码包带主机
上,然后解压并编译,从而得到 redis-server 启动文件)


[root@\ redis/usr/local/redis-6.2.1]# cd /usr/local/redis-6.2.1/
[root@\ redis/usr/local/redis-6.2.1]# yum -y install centos-release-scl


[root@\ redis/usr/local/redis-6.2.1]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@\ redis/usr/local/redis-6.2.1]# scl enable devtoolset-9 bash




[root@\ redis/usr/local/redis-6.2.1]# make
[root@\ redis/usr/local/redis-6.2.1]# make PREFIX=/usr/local/redis install  && make install



4,复制配置文件
[root@\ redis/usr/local/redis-6.2.1]# mkdir etc
[root@\ redis/usr/local/redis-6.2.1]# cp /usr/local/redis-6.2.1/redis.conf  etc/


5,修改配置文件
[root@\ redis/usr/local/redis-6.2.1]# vim etc/redis.conf
...

daemonize yes  # daemonize no修改为 daemonize yes
...
# 是否要用守护线程的方式启动




6,Redis 根目录下入环境变量
[root@\ redis/usr/local/redis-6.2.1]# vim ~/.bash_profile
...
# 增加以下
REDIS_HOME=/usr/local/redis-6.2.1
PATH=$PATH:$REDIS_HOME/bin
export PATH



[root@\ redis/usr/local/redis-6.2.1]# source ~/.bash_profile


7,注册 Redis 服务
[root@\ redis/usr/local/redis-6.2.1]# cat > /usr/lib/systemd/system/redis.service << EOF
[Unit]
Description=Redis
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis-6.2.1/bin/redis-server /usr/local/redis-6.2.1/etc/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF




8,启动redis
[root@\ redis/usr/local/redis-6.2.1]# systemctl daemon-reload
[root@\ redis/usr/local/redis-6.2.1]# systemctl start redis
[root@\ redis/usr/local/redis-6.2.1]# systemctl status redis

9,连接
[root@\ redis/usr/local/redis-6.2.1]# redis-cli -h 127.0.0.1


命令行模式

# 进入命令行模式
redis-cli
    # 参数
        -h : 指定连接redis服务器的IP,默认是127.0.0.1
        -a : 指定redis密码,默认redis没有密码
        -p : 指定redis端口号,默认redis的端口号是6379
        --raw : 支持中文

三,redis数据结构

1,字符串

#连接redis (默认本机,可修改配置bind)
[root@\ db03~]# redis-cli -h 127.0.0.1


# 设置数据
127.0.0.1:6379> set name zx
OK
127.0.0.1:6379> get name
"zx"


#设置过期时间为秒
127.0.0.1:6379> set name zxx ex 10
OK
127.0.0.1:6379> ttl name
(integer) 3        #   还剩3秒过期
127.0.0.1:6379> ttl name
(integer) -2       #   -2代表过期





# set 和 ex 合并成 setex
127.0.0.1:6379> setex name 5  zx
OK


# 设置过期时间为毫秒
127.0.0.1:6379> set name zx px 20
OK
127.0.0.1:6379> psetex name 20 zx
OK



2,
Nx:当 key 不存在时创建,已存在则忽略。
Xx:当 key 存在则更新,不存在则忽略。

127.0.0.1:6379> set name zxx nx
OK
127.0.0.1:6379> set name zxx nx
(nil)

127.0.0.1:6379> setnx age 18         #合并使用
(integer) 1

127.0.0.1:6379> set agee 11 xx
(nil)
127.0.0.1:6379> set name zxx xx
OK





3,批量设置(查询)
# mset 设置多个值
127.0.0.1:6379> mset key1 value1 key2 value2
OK

# 获取多个值
127.0.0.1:6379> mget key1 key2
1) "value1"
2) "value2"






4,删除数据
127.0.0.1:6379> del age
(integer) 1

127.0.0.1:6379> del b3 b4        #可以多个一起删除
(integer) 2







5,更改数据(set 在没有数据的情况下,建数据;有数据的情况更新数据)
127.0.0.1:6379> set name zx
OK
127.0.0.1:6379> set name egon
OK
127.0.0.1:6379> get name
"egon"





6,  getset : 先获取数据然后更新
127.0.0.1:6379> getset name alex
"egon"
127.0.0.1:6379> get name
"alex"







7, SETRANGE指定下标更新数据 ,从alex的第四个字符后面增加zxx
127.0.0.1:6379> get name
"alex"
127.0.0.1:6379> SETRANGE name 4 zxx
(integer) 7
127.0.0.1:6379> get name
"alexzxx"








8, 指定key递增
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> incr num
(integer) 4


# 递增指定长度
127.0.0.1:6379> incrby key0  8
(integer) 8
127.0.0.1:6379> incrby key0  8
(integer) 16
127.0.0.1:6379> incrby key0  8
(integer) 24



8, 指定key递减
127.0.0.1:6379> decr num
(integer) 3
127.0.0.1:6379> decr num
(integer) 2
127.0.0.1:6379> decr num
(integer) 1



# 指定递减长度
127.0.0.1:6379> decrby key0  2
(integer) 22
127.0.0.1:6379> decrby key0  2
(integer) 20
127.0.0.1:6379> decrby key0  2
(integer) 18



9,append最后面追加

127.0.0.1:6379> get key1
"value1"
127.0.0.1:6379> append key1 345
(integer) 9
127.0.0.1:6379> get key1
"value1345"




10,查看字符长度
127.0.0.1:6379> get name
"alexzxx"

127.0.0.1:6379> STRLEN name
(integer) 7





11,从指定位置截取字符串(不会永久改变原字符串值)
127.0.0.1:6379> get name
"alexzxx"


127.0.0.1:6379> GETRANGE name 0 3
"alex"

Redis数据结构之hash

hash  一个key  多个属性





# 查看帮助
127.0.0.1:6379> help @hash



127.0.0.1:6379> hset people name egon age 18 add shanghai
(integer) 3
127.0.0.1:6379> hget people name
"egon"


# 查看hash类型的key中的属性是否存在
127.0.0.1:6379> hexists people age
(integer) 1
127.0.0.1:6379> hexists people gender
(integer) 0



# hsetnx 不存在则创建,存在则忽略
127.0.0.1:6379> hsetnx people  phone 133
(integer) 1
127.0.0.1:6379> hget people phone
"133"


127.0.0.1:6379> hget people name
"egon"
127.0.0.1:6379> hsetnx people name zxx
(integer) 0
127.0.0.1:6379> hget people name
"egon"








# hdel删除hash中的某一个属性
# del 删除redis当中的某一个key
127.0.0.1:6379> hget people age
"18"
127.0.0.1:6379> hdel people age
(integer) 1
127.0.0.1:6379> hget people age
(nil)




# 更改hash属性
127.0.0.1:6379> hset people name zxx
(integer) 0
127.0.0.1:6379> hget people name
"zxx"




# 获取多个hash属性值
127.0.0.1:6379> hmget people name add
1) "zxx"
2) "shanghai"



# mget
127.0.0.1:6379> keys *
1) "people"
2) "num"
3) "key8"
4) "key0"
5) "key4"
6) "key1"

127.0.0.1:6379> mget key0  key1
1) "18"
2) "value1345"





# hgetall ,获取hash类型下的某个key中的所有属性及值
127.0.0.1:6379> hgetall people
1) "name"
2) "zxx"
3) "add"
4) "shanghai"
5) "gender"
6) "man"
7) "phone"
8) "133"




# hkeys ,只获取hash类型下的key中所有的属性
127.0.0.1:6379> hkeys people
1) "name"
2) "add"
3) "gender"
4) "phone"



# hvals,只获取hash类型下的key中所有的属性的值
127.0.0.1:6379> hvals people
1) "zxx"
2) "shanghai"
3) "man"
4) "133"




# hincrby 累加并返回hash类型中的某个属性的的值
127.0.0.1:6379> HINCRBY people id 1
(integer) 1
127.0.0.1:6379> HINCRBY people id 1
(integer) 2
127.0.0.1:6379> HINCRBY people id 1
(integer) 3

127.0.0.1:6379> hvals people
1) "zxx"
2) "shanghai"
3) "man"
4) "133"
5) "3"





# hincrbyfloat ,小数累加并返回hash类型中的某个属性的的值(hincrbyfloat存在数据计算精度问题)
127.0.0.1:6379> HINCRBYFLOAT people id 10.8
"13.8"
127.0.0.1:6379> HINCRBYFLOAT people id 10.8
"24.6"
127.0.0.1:6379> HINCRBYFLOAT people id 10.8
"35.4"






# 负数递减(不支持小数)
127.0.0.1:6379> hincrby  people num 1
(integer) 1
127.0.0.1:6379> hincrby  people num 1
(integer) 2
127.0.0.1:6379> hincrby  people num -3
(integer) -1






# 获取hash类型的属性有多少个
127.0.0.1:6379> hlen people
(integer) 6


127.0.0.1:6379> hvals people
1) "zxx"
2) "shanghai"
3) "man"
4) "133"
5) "35.4"
6) "-1"






#某个hash类型下的属性的长度
127.0.0.1:6379> HSTRLEN people id
(integer) 4




# expire针对所有的kye设置过期时间(-1代表永久有效;-2代表过期)
127.0.0.1:6379> ttl people
(integer) -1
127.0.0.1:6379> EXPIRE people 1000
(integer) 1
127.0.0.1:6379> ttl people
(integer) 995


127.0.0.1:6379> EXPIRE people 1
(integer) 1
127.0.0.1:6379> ttl people
(integer) -2
127.0.0.1:6379> hgetall people
(empty array)
127.0.0.1:6379> ttl people
(integer) -2



redis数据类型_列表

列表  ->   一个key   ->  多个值;
列表可以从前或者从后插入数据


# 插入数据
         set key value
hash类型:hset key field value


列表从左插入lpush(先进后出):
127.0.0.1:6379> lpush class a b c d e f g
(integer) 7


# 获取列表中的数据
127.0.0.1:6379> lrange class 0 3
1) "g"
2) "f"
3) "e"
4) "d"


# 查询列表最左边的值
127.0.0.1:6379> LRANGE excel -1 -1
1) "a"



列表从右插入rpush(先进先出):
127.0.0.1:6379> rpush table 1 2 3 4 5
(integer) 5

# 查处所有的值
127.0.0.1:6379> LRANGE table 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

# 查询列表中最右边的值
127.0.0.1:6379> LRANGE table -1 -1
1) "5"




setnx:当一个key不存在则插入数据,存在则忽略
hsetnx:当一个key某个属性不存在时则插入数据,存在则忽略
lpushx:当列表存在时则插入(追加)数据
rpushx: 当列表存在时则在列表右侧追加数据,不存在则忽略


127.0.0.1:6379> lpushx excel 5 6 7
(integer) 6
127.0.0.1:6379> lrange excel 0 -1
1) "7"
2) "6"
3) "5"
4) "a"
5) "b"
6) "a"


127.0.0.1:6379> lpushx table   a b c
(integer) 8
127.0.0.1:6379> lrange table 0 -1
1) "c"
2) "b"
3) "a"
4) "1"
5) "2"
6) "3"
7) "4"
8) "5"


127.0.0.1:6379> rpushx table   a b c
(integer) 11
127.0.0.1:6379> lrange table 0 -1
 1) "c"
 2) "b"
 3) "a"
 4) "1"
 5) "2"
 6) "3"
 7) "4"
 8) "5"
 9) "a"
10) "b"
11) "c"



# linsert 【key】 before [指定的值] 【新增的值】在指定的值前面追加数据
127.0.0.1:6379> lrange excel 0 -1
1) "7"
2) "6"
3) "5"
4) "a"
5) "b"
6) "a"
127.0.0.1:6379> linsert excel before 5 44
(integer) 7

127.0.0.1:6379> lrange excel 0 -1
1) "7"
2) "6"
3) "44"
4) "5"
5) "a"
6) "b"
7) "a"

127.0.0.1:6379> linsert excel before a bb
(integer) 8
127.0.0.1:6379> lrange excel 0 -1
1) "7"
2) "6"
3) "44"
4) "5"
5) "bb"
6) "a"
7) "b"
8) "a"



# 指定的后面追加数据
127.0.0.1:6379> linsert excel after 7 77
(integer) 9
127.0.0.1:6379> lrange excel 0 -1
1) "7"
2) "77"
3) "6"
4) "44"
5) "5"
6) "bb"
7) "a"
8) "b"
9) "a"




# 删除数据
del:删除某个key
hdel:删除hash类型中的中的某个属性
lrem:删除列表中某个区间中的值(从列表左侧开始移除数据)


lrem






set:如果key不存在侧增加数据,存在则更新
mset:如果hash类型中存在某个属性则更新,不存在则增加
lset:如果列表中存在则更新,不存在则增加


# lset

127.0.0.1:6379> LRANGE table 0 -1
1) "-1"
2) "888"
3) "666"
4) "1"
5) "2"
6) "3"

127.0.0.1:6379> lset table 2 000
OK
127.0.0.1:6379> LRANGE table 0 -1
1) "-1"
2) "888"
3) "000"
4) "1"
5) "2"
6) "3"





# ltrim ,截取列表中指定范围内数据,替换到原来的数据列表之中
127.0.0.1:6379> LRANGE table 0 -1
 1) "-1"
 2) "888"
 3) "666"
 4) "1"
 5) "2"
 6) "3"
 7) "5"
 8) "a"
 9) "b"
10) "666"
127.0.0.1:6379> ltrim table 0 5
OK
127.0.0.1:6379> LRANGE table 0 -1
1) "-1"
2) "888"
3) "666"
4) "1"
5) "2"
6) "3"



# strlen 获取字符串的长度
# hlen 获取hash类型中元素的格式
# hstelen 获取hash类型中属性的长度

# llen  获取列表中元素的个数
127.0.0.1:6379> LRANGE table 0 -1
1) "-1"
2) "888"
3) "000"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> llen table
(integer) 6





# lindex 根据下标获取元素
127.0.0.1:6379> LRANGE table 0 -1
1) "-1"
2) "888"
3) "000"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> lindex table 0
"-1"
127.0.0.1:6379> lindex table 1
"888"





#lpop ,列表的左边开始消费数据,消费完毕则在列表中删除
127.0.0.1:6379> LRANGE table 0 -1
1) "888"
2) "000"
3) "1"
4) "2"
5) "3"
127.0.0.1:6379> lpop table 1
1) "888"
127.0.0.1:6379> LRANGE table 0 -1
1) "000"
2) "1"
3) "2"
4) "3"






#lpop ,列表的右边开始消费数据,消费完毕则在列表中删除
127.0.0.1:6379> LRANGE table 0 -1
1) "000"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> rpop table 1
1) "3"
127.0.0.1:6379> LRANGE table 0 -1
1) "000"
2) "1"
3) "2"





# rpoplpush 消费a列表的最右边元素,追加到b列表的最左边
127.0.0.1:6379> lpush a 1 2 3
(integer) 3
127.0.0.1:6379> lpush b 4 5 6
(integer) 3

127.0.0.1:6379> rpoplpush a b
"1"
127.0.0.1:6379> lrange a 0 -1
1) "3"
2) "2"
127.0.0.1:6379> lrange b 0 -1
1) "1"
2) "6"
3) "5"
4) "4"




# 从列表最左侧开始消费数据(有数据的情况下消费一个;没有数据的情况下,会卡10s)
127.0.0.1:6379> LRANGE b 0 -1
1) "5"
2) "4"
3) "2"
127.0.0.1:6379> blpop b 10
1) "b"
2) "5"
127.0.0.1:6379> blpop b 10
1) "b"
2) "4"
127.0.0.1:6379> blpop b 10
1) "b"
2) "2"
127.0.0.1:6379> blpop b 10


...在另一个终端开启并执行
127.0.0.1:6379> LPUSH b 3
(integer) 1

127.0.0.1:6379> blpop b 10
1) "b"
2) "3"
(2.81s)


redis数据类型_ 无序集合

# 增加新的成员
#set key  value          --> get key                --> del key  删除字符串类型的key
#hset key field value    -->  hmget key field       --> hdel key field 删除hash类型中的属性
#lpush key value         --> lrange key 0 -1        --> lrem 删除列表中某个区间的数据
sadd key value

127.0.0.1:6379> sadd skey svalue1 svalue2 svalue3
(integer) 3

# 查看内容
127.0.0.1:6379> SMEMBERS skey
1) "svalue3"
2) "svalue2"
3) "svalue1"



#srem删除数据
127.0.0.1:6379> SMEMBERS skey
1) "svalue3"
2) "svalue2"
3) "svalue1"

127.0.0.1:6379> srem skey svalue1
(integer) 1

127.0.0.1:6379> SMEMBERS skey
1) "svalue3"
2) "svalue2"





# 修改数据
# set key value
# hset key field value
# linsert 下标 修改的内容
smove移动数据
127.0.0.1:6379> sadd a1 1 2 3
(integer) 3
127.0.0.1:6379> sadd a2 11 22 33
(integer) 3
127.0.0.1:6379> SMEMBERS a1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SMEMBERS a2
1) "11"
2) "22"
3) "33"


127.0.0.1:6379> smove a1 a2 3
(integer) 1
127.0.0.1:6379> SMEMBERS a1
1) "1"
2) "2"
127.0.0.1:6379> SMEMBERS a2
1) "3"
2) "11"
3) "22"
4) "33"

PS:集合中不存在重复数据(如果a1 和a2 都有3,则a1没有3,a2也没有3)





# scard ,返回集合中成员的个数
127.0.0.1:6379> SMEMBERS a1
1) "1"
2) "2"
127.0.0.1:6379> scard a1
(integer) 2





#从集合中随机返回指定个数的成员
127.0.0.1:6379> SMEMBERS a2
1) "3"
2) "11"
3) "22"
4) "33"

127.0.0.1:6379> SRANDMEMBER a2 1
1) "33"

127.0.0.1:6379> SRANDMEMBER a2 2
1) "11"
2) "33"






# 判断集合中是否有该成员
127.0.0.1:6379> SMEMBERS a2
1) "3"
2) "11"
3) "22"
4) "33"

127.0.0.1:6379> SISMEMBER a2 4
(integer) 0
127.0.0.1:6379> SISMEMBER a2 33
(integer) 1






#随机返回一个成员(并删除) 
127.0.0.1:6379> SMEMBERS x
1) "1"
2) "2"
3) "3"
4) "6"

127.0.0.1:6379> spop x
"6"

127.0.0.1:6379> SMEMBERS x
1) "1"
2) "2"
3) "3"

交集 并集 差集

交集:多个集合加起来的重复部分

127.0.0.1:6379> SMEMBERS a1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SMEMBERS a2
1) "3"
2) "11"
3) "22"
4) "33"
127.0.0.1:6379> SINTER a1 a2
1) "3"

# 交集的部分保存为一个新的集合
127.0.0.1:6379> SINTERSTORE ab a1 a2
(integer) 1
127.0.0.1:6379> SMEMBERS ab
1) "3"






并集:多个集合加起来的所有内容
127.0.0.1:6379> SMEMBERS a1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SMEMBERS a2
1) "3"
2) "11"
3) "22"
4) "33"
127.0.0.1:6379> SUNION a1 a2
1) "1"
2) "2"
3) "3"
4) "11"
5) "22"
6) "33"

#将多个集合合并成一个新的集合
127.0.0.1:6379> SUNIONSTORE new_ab a1 a2
(integer) 6
127.0.0.1:6379> SMEMBERS new_ab
1) "1"
2) "2"
3) "3"
4) "11"
5) "22"
6) "33"











差集:两个集合不重复的数据
# 显示排列在第一个集合不同的地方
127.0.0.1:6379> SMEMBERS b1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SMEMBERS b2
1) "3"
2) "44"
3) "55"

127.0.0.1:6379> SDIFF b1 b2  # b1不同的地方,b1在前面
1) "1"
2) "2"

127.0.0.1:6379> SDIFF b2 b1  # b2不同的地方,b2在前面
1) "44"
2) "55"

127.0.0.1:6379> SDIFFSTORE b3 b1 b2  #把b1不同的地方保存在一个新的集合b3中
(integer) 2
127.0.0.1:6379> SMEMBERS b3
1) "1"
2) "2"

127.0.0.1:6379> SDIFFSTORE b4 b2 b1  #把b2不同的地方保存在一个新的集合中b4中
(integer) 2
127.0.0.1:6379> SMEMBERS b4
1) "44"
2) "55"






# 获取成员数
127.0.0.1:6379> scard b1
(integer) 2

redis数据类型_有序集合

集合当中不存在重复数据
与无序集合之间最大的区别:有序集合拥有一个分数的属性



#增加数据
# set key value
# hset key value
# lpush key value
sadd key value

127.0.0.1:6379> zadd school 1 zx
(integer) 1
127.0.0.1:6379> zadd school 2 zy
(integer) 1
127.0.0.1:6379> zadd school 3 pp
(integer) 1
127.0.0.1:6379> zadd school 4 dd
(integer) 1


#获取数据
# get key
# hget key
# lrange key
zrange key

#查看所有数据
127.0.0.1:6379> zrange school 0 -1
1) "zx"
2) "zy"
3) "pp"
4) "dd"

127.0.0.1:6379> zrange school 1 3
1) "zy"
2) "pp"
3) "dd"





# 获取成员数
127.0.0.1:6379> zcard school
(integer) 4




# 获取指定区间的成员数
127.0.0.1:6379> zcount school 0 2
(integer) 2





#模糊匹配(a开头g结尾区间内的)
127.0.0.1:6379> zrange school 0 50
1) "aing"
2) "pp"
3) "dd"
4) "pinp"

127.0.0.1:6379> ZLEXCOUNT school [a [g
(integer) 1






#获取成员的分数值
127.0.0.1:6379> zrange school 0 -1
1) "zx"
2) "zy"
3) "pp"
4) "dd"
127.0.0.1:6379> ZSCORE school p
(nil)
127.0.0.1:6379> ZSCORE school pp
"3"








# 模糊匹配(从0开始匹配,z开头的,支持正则)
127.0.0.1:6379> zscan school 0 match "z*"
1) "0"
2) 1) "zx"
   2) "1"
   3) "zy"
   4) "2"







#删除数据zrem
127.0.0.1:6379> zrange school 0 50   # 相当于zrange,数字可以更改
1) "zy"
2) "pp"
3) "dd"

127.0.0.1:6379> zrem school zy
(integer) 1

127.0.0.1:6379> zrange school 0 50
1) "pp"
2) "dd"


常用redis系统命令

1,查询所有的key
127.0.0.1:6379> keys *
 1) "skey"
 2) "school"
 3) "class"
 4) "num"
 5) "a"
 6) "ab"
 7) "b1"
 8) "excel"
 9) "table"
10) "key1"
11) "b3"
12) "new_ab"





2,查询数据类型
127.0.0.1:6379> type b3
set

127.0.0.1:6379> set abc bcd
OK
127.0.0.1:6379> type abc
string





3,查询过期时间
127.0.0.1:6379> ttl a11    #秒
(integer) -1

127.0.0.1:6379> pttl a11    #毫秒
(integer) -1






4,查询key是否存在
127.0.0.1:6379> exists b7
(integer) 0
127.0.0.1:6379> exists b4
(integer) 1





5,重命名key
127.0.0.1:6379> rename a1 a11
OK
127.0.0.1:6379> exists a1
(integer) 0
127.0.0.1:6379> exists a11
(integer) 1




6,随机返回一个key
127.0.0.1:6379> RANDOMKEY
"key1"
127.0.0.1:6379> RANDOMKEY
"table"
127.0.0.1:6379> RANDOMKEY
"a1"




6,删除key
127.0.0.1:6379> del b2
(integer) 1

上一篇下一篇

猜你喜欢

热点阅读