redis命令详解(字符串)
1.基础命令举例
#这边先举例一下下面要详细去将的命令
#可以查询库里面所有的key,数据量比较庞大不建议使用这个命令
keys *
#进行创建key的命令和赋值,mset可以批量创建
set
mset
#对key进行查询和批量查询
get
mget
#对key中的数字进行加减和指定加减,incrby、decrby可以选择加减的数量
incr
incrby
decr
decrby
#DBSIZE可以查询出目前有多少个key
#EXISTS命令可以查询key是否存在,在数量特别多的情况下可以代替keys去查询
EXISTS
#del删除命令
del删除某一个key(键)
#ttl查询key的失效时间
#EXPIRE、PERSIST命令,默认使用set、mset或者其他方式插入的数据是永不失效
可以设置key的失效时间和设置为永不失效
#可以看下面的命令详细解释和案例
2.redis基础命令详解
[root@localhost ~]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf
[root@localhost ~]# ps -ef |grep redis
root 3137 1 0 15:12 ? 00:00:00 redis-server 127.0.0.1:6379
root 3544 3073 0 15:28 pts/1 00:00:00 grep --color=auto redis
[root@localhost ~]# redis-cli
127.0.0.1:6379>
#redis中输入命令会自动有补全的提示
#查询目前数据库中所有的数据命令
127.0.0.1:6379> keys *
#第一次查询会提示这个,这是因为刚创建所以是没有数据存入的
127.0.0.1:6379> keys *
(empty list or set)
当你数量命令的时候redis会自动出现后续语法的提示
#可以通过命令去写入数据
#举例这种写入的方法就是,a1是key(表),表中的数据是a
127.0.0.1:6379>set a1 a
#举例查询命令,使用get命令去查询a1这个表就会反馈表中的内容
127.0.0.1:6379> get a1
"a"
#同理使用,keys命令查询全部就是有a1这个表的信息了
127.0.0.1:6379> KEYS *
1) "a1"
1.2.redis-cli命令
#redis-cli命令也是支持在命令行直接查询的
[root@localhost ~]# redis-cli get a1
"a"
下面我们举例一下如果往里面插入的数据特别多的情况下的存储情况
#举例,我们这边也是编写了一个中文的文档,内容不重要我们现在把他存入在redis中
[root@localhost ~]# vim test.txt
[root@localhost ~]# cat test.txt
世事如书,我偏爱你这一句,愿做个逗号,待在你脚边。但你有自己的朗读者,而我只是个摆渡人
#我们通过变量的方法去给他导入到redis的库中,导入的时候文字间不要有空格,不然可能导入失败
[root@localhost ~]# redis-cli set txt $(cat test.txt)
OK
#中文存储到数据库中是字符串格式的
[root@localhost ~]# redis-cli get txt
"\xe4\xb8\x96\xe4\xba\x8b\xe5\xa6\x82\xe4\xb9\xa6\xef\xbc\x8c\xe6\x88\x91\xe5\x81\x8f\xe7\x88\xb1\xe4\xbd\xa0\xe8\xbf\x99\xe4\xb8\x80\xe5\x8f\xa5\xef\xbc\x8c\xe6\x84\xbf\xe5\x81\x9a\xe4\xb8\xaa\xe9\x80\x97\xe5\x8f\xb7\xef\xbc\x8c\xe5\xbe\x85\xe5\x9c\xa8\xe4\xbd\xa0\xe8\x84\x9a\xe8\xbe\xb9\xe3\x80\x82\xe4\xbd\x86\xe4\xbd\xa0\xe6\x9c\x89\xe8\x87\xaa\xe5\xb7\xb1\xe7\x9a\x84\xe6\x9c\x97\xe8\xaf\xbb\xe8\x80\x85\xef\xbc\x8c\xe8\x80\x8c\xe6\x88\x91\xe5\x8f\xaa\xe6\x98\xaf\xe4\xb8\xaa\xe6\x91\x86\xe6\xb8\xa1\xe4\xba\xba"
#举例,我们把库中的数据给导入到一个文件中
[root@localhost ~]# redis-cli get txt > 1.txt
#导出的数据还是中文
[root@localhost ~]# cat 1.txt
世事如书,我偏爱你这一句,愿做个逗号,待在你脚边。但你有自己的朗读者,而我只是个摆渡人
#在生产环境中建议不少使用
127.0.0.1:6379>keys * #这个命令如果数据量过大可能会导致redis挂掉
#这个命令可以查询当前有多少个key
127.0.0.1:6379> DBSIZE
(integer) 2
1.3.命令中的加减
#举例,这边的nu是我创建的key的名字
#INCR、INCRBY只对数字有效
#INCR nu 命令后面跟上key,就可以对数字进行加一
#INCRBY nu 10命令加上key,和所加的数字大小对内容进行增加
#TYPE nu可以判断key的格式,string为字符串
127.0.0.1:6379> set nu 1 #创建一个key内容为1
OK
127.0.0.1:6379> get nu #查询key的内容
"1"
127.0.0.1:6379> INCR nu #使用命令对key进行加1
(integer) 2
127.0.0.1:6379> get nu #查询key的内容
"2"
127.0.0.1:6379> INCRBY nu 10 #使用命令对key进行加10
(integer) 12
127.0.0.1:6379> get nu #查询key的内容
"12"
127.0.0.1:6379> TYPE nu #查询key的类型
string
#举例DECR、DECRB就是对字符串进行减法的
127.0.0.1:6379> DECR nu
(integer) 1
127.0.0.1:6379> DECRBY nu 10
(integer) 2
1.4.mset和mget命令
#mset和mget是可以批量去赋值创建key的命令
#set和get只能查询和创建单个的字符串
127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> KEYS *
1) "k1"
2) "k2"
3) "k3"
4) "a1"
5) "txt"
6) "nu"
#mget操作举例
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
1.5.EXISTS命令
# KEYS *命令查询的时候如果数量别特庞大容易死机,我们可以使用EXISTS命令查询
#举例EXISTS是查询这个key是否存在,返回1是存在0是不存在
127.0.0.1:6379> EXISTS a
(integer) 0
#这个输出就证明这个key存在
127.0.0.1:6379> EXISTS k1
(integer) 1
1.6.del、ttl、EXPIRE、PERSIST命令
#举例del key
#del是删除命令,这边是删除了k1
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> get k1
(nil)
#举例ttl key
#ttl 可以查看key的过期时间,默认的话是永不过期,就是使用set、mset或者其他方式写入的数据会一直存在reidis数据库中
#输出的值-1表示永不过期
127.0.0.1:6379> ttl k2
(integer) -1
#举例EXPIRE key(失效时间)这个命令的键失效时间是秒为单位
#我这边设置的失效时间是10秒
127.0.0.1:6379> EXPIRE k3 10(秒)
(integer) 1
#在查询的ttl显示为-2表示数据已经删除,get也查不到数据,设置这个失效时间要注意
127.0.0.1:6379> ttl k3
(integer) -2
127.0.0.1:6379> get k3
(nil)
#举例PERSIST命令是把key设置为永不过期
#set再次创建key也可以覆盖为永不过期
127.0.0.1:6379> PERSIST k2
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -1
询的ttl显示为-2表示数据已经删除,get也查不到数据,设置这个失效时间要注意
127.0.0.1:6379> ttl k3
(integer) -2
127.0.0.1:6379> get k3
(nil)
#举例PERSIST命令是把key设置为永不过期
#set再次创建key也可以覆盖为永不过期
127.0.0.1:6379> PERSIST k2
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -1