redis常用操作2, redis操作键值, redis安全设置

string数据

127.0.0.1:6379> setnx k1 888  #键存在,setnx检测到,不会覆盖;
(integer) 0
127.0.0.1:6379> get k1
"12"
127.0.0.1:6379> setnx k4 888   #新键可创建;
(integer) 1
127.0.0.1:6379> setex k4 10 99  #设置键的过期时间;
OK
127.0.0.1:6379> get k4
"99"
127.0.0.1:6379> get k4    #10秒后不存在;
(nil)
127.0.0.1:6379> set k4 888 ex 10  #设置键值和过期时间,另一条命令;
OK
127.0.0.1:6379> get k4
"888"
127.0.0.1:6379> get k4
(nil)

list数据

127.0.0.1:6379> LRANGE l1 0 -1    #l1的所有元素;
1) "kfls"
2) "ll"
3) "5"
4) "1"
127.0.0.1:6379> LPOP l1     #取出一个元素;
"kfls"
127.0.0.1:6379> LPOP l1
"ll"
127.0.0.1:6379> RPOP l1   #从另一侧取出一个元素;
"1"
127.0.0.1:6379> LRANGE l1 0 -1
1) "5"
127.0.0.1:6379> RPUSH l1 kllll  #从另一侧放进一个元素;
(integer) 2
127.0.0.1:6379> RPUSH l1 llpp939
(integer) 3
127.0.0.1:6379> LRANGE l1 0 -1
1) "5"
2) "kllll"
3) "llpp939"
127.0.0.1:6379> LRANGE l1 0 -1
1) "5"
2) "kllll"
3) "llpp939"
127.0.0.1:6379> LINSERT l1 before kllll 999   #在某个元素前添加一个元素;before/after是按lpop的顺序;
(integer) 4
127.0.0.1:6379> LRANGE l1 0 -1
1) "5"
2) "999"
3) "kllll"
4) "llpp939"
127.0.0.1:6379> LSET l1 3 888   #设置第四个值;
OK
127.0.0.1:6379> LRANGE l1 0 -1
1) "5"
2) "999"
3) "kllll"
4) "888"
127.0.0.1:6379> LINDEX l1 2   #查看第3个元素;
"kllll"
127.0.0.1:6379> llen l1   #查看键的长度,值的数量;
(integer) 4

set 数据

127.0.0.1:6379> SMEMBERS s1   #查看set数据;
1) "1"
2) "3"
3) "5"
4) "7"
5) "9"
127.0.0.1:6379> SPOP s1 1   #随机取出一个元素;
1) "1"
127.0.0.1:6379> SMEMBERS s1
1) "3"
2) "5"
3) "7"
4) "9"
127.0.0.1:6379> SPOP s1 2   #随机取出两个元素;
1) "3"
2) "9"
127.0.0.1:6379> SMEMBERS s1
1) "5"
2) "7"
127.0.0.1:6379> SADD s1 1 3 9  
(integer) 3
127.0.0.1:6379> SMEMBERS s1
1) "1"
2) "3"
3) "5"
4) "7"
5) "9"
127.0.0.1:6379> SRANDMEMBER s1 3  #随机读3个元素;
1) "3"
2) "5"
3) "9"
127.0.0.1:6379> SRANDMEMBER s1 4  #随机读4个元素;
1) "3"
2) "1"
3) "9"
4) "7"
127.0.0.1:6379> SRANDMEMBER s1 2  #随机读5个元素;
1) "1"
2) "5"
127.0.0.1:6379> SMEMBERS s1  #不影响数据;
1) "1"
2) "3"
3) "5"
4) "7"
5) "9"
127.0.0.1:6379> SMEMBERS s1   
1) "1"
2) "3"
3) "5"
4) "7"
5) "9"
127.0.0.1:6379> SMEMBERS s2
1) "2"
2) "4"
3) "6"
4) "7"
5) "8"
6) "9"
7) "10"
127.0.0.1:6379> SDIFF s1 s2   #S1减去两者共有的;
1) "1"
2) "3"
3) "5"
127.0.0.1:6379> SDIFF s2 s1  #s2减去两都共有的;
1) "2"
2) "4"
3) "6"
4) "8"
5) "10"
127.0.0.1:6379> SDIFFSTORE d1 s1 s2   #差集存储为一个新数据;
(integer) 3
127.0.0.1:6379> SMEMBERS d1
1) "1"
2) "3"
3) "5"
127.0.0.1:6379> SINTERSTORE d2 s1 s2   #交集存储为一个新数据;
(integer) 2
127.0.0.1:6379> SMEMBERS d2
1) "7"
2) "9"
127.0.0.1:6379> SUNIONSTORE d3 s1 s2   #并集存储为一个新数据;
(integer) 10
127.0.0.1:6379> SMEMBERS d3
 1) "1"
 2) "2"
 3) "3"
 4) "4"
 5) "5"
 6) "6"
 7) "7"
 8) "8"
 9) "9"
10) "10"
127.0.0.1:6379> SISMEMBER d3 4  #查询元素是否存在于一个集合中;
(integer) 1
127.0.0.1:6379> SISMEMBER d2 4
(integer) 0

sorted set数据

127.0.0.1:6379> ZRANGE z1 0 -1 withscores
1) "abc"
2) "1"
3) "lll"
4) "2"
5) "klkl"
6) "3"
7) "oiio"
8) "4"
127.0.0.1:6379> ZRANGE z1 0 -1
1) "abc"
2) "lll"
3) "klkl"
4) "oiio"
127.0.0.1:6379> ZREM z1 abc
(integer) 1
127.0.0.1:6379> ZRANGE z1 0 -1
1) "lll"
2) "klkl"
3) "oiio"
127.0.0.1:6379> ZRANK z1 klkl  #查询一个值的索引值,为第二个元素;
(integer) 1
127.0.0.1:6379> ZREVRANK z1 klkl  #反向查询索引值,为倒数第二个元素;
(integer) 1
127.0.0.1:6379> ZCARD z1
(integer) 3
127.0.0.1:6379> ZCOUNT z1 1 3   #计算编号1-3里,有几个值;
(integer) 2
127.0.0.1:6379> ZRANGE z1 0 -1 withscores
1) "lll"
2) "2"
3) "klkl"
4) "3"
5) "oiio"
6) "4"
127.0.0.1:6379> ZCOUNT z1 3 5  #计算编号3-5里,有几个值;
(integer) 2
127.0.0.1:6379> ZRANGEBYSCORE z1 3 5  #编号3-5里的所有值;
1) "klkl"
2) "oiio"
127.0.0.1:6379> ZREMRANGEBYSCORE z1 3 5  #删除编号3-5里的所有值;
(integer) 2
127.0.0.1:6379> ZRANGE z1 0 -1 withscores
1) "lll"
2) "2"
127.0.0.1:6379> ZREMRANGEBYRANK z1 0 0  #删除索引号为0-0的值;第一个值;只有一个值;
(integer) 1
127.0.0.1:6379> ZRANGE z1 0 -1 withscores
(empty list or set)

hash 数据

127.0.0.1:6379> hmset h2 name b job eng age 22  #批量为一个hash数据建立键值;
OK
127.0.0.1:6379> HGETALL h2
1) "name"
2) "b"
3) "job"
4) "eng"
5) "age"
6) "22"
127.0.0.1:6379> HDEL h2 age   #删除一个键值;
(integer) 1
127.0.0.1:6379> HGETALL h2
1) "name"
2) "b"
3) "job"
4) "eng"
127.0.0.1:6379> HKEYS h2   #查询所有键;
1) "name"
2) "job"
127.0.0.1:6379> HVALS h2   #查询所有值;
1) "b" 
2) "eng"
127.0.0.1:6379> HLEN h2    #查询键值对数;
(integer) 2

redis常用操作(键值)

127.0.0.1:6379> keys *   #显示所有key;
 1) "d2"
 2) "s1"
 3) "k1"
 4) "d1"
 5) "z2"
 6) "k2"
 7) "h1"
 8) "h2"
 9) "d3"
10) "k3"
11) "l1"
12) "s2"
127.0.0.1:6379> keys h*   #模糊搜索;
1) "h1"
2) "h2"
127.0.0.1:6379> exists d1   #查询key是否存在;
(integer) 1
127.0.0.1:6379> exists dd1 
(integer) 0
127.0.0.1:6379> expire k1 5  #设置key的过期时间;
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 2
127.0.0.1:6379> ttl k1  #key过期,不存在为-2;
(integer) -2
127.0.0.1:6379> select 1  #选择库1,默认为库0;
OK
127.0.0.1:6379[1]> keys *   
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> move h1 1   #移动key;
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "h1"
127.0.0.1:6379[1]> EXPIRE h1 13   
(integer) 1
127.0.0.1:6379[1]> ttl h1
(integer) 9
127.0.0.1:6379[1]> PERSIST h1   #取消过期时间;
(integer) 1
127.0.0.1:6379[1]> ttl h1
(integer) -1
127.0.0.1:6379[1]> SELECT 0
OK
127.0.0.1:6379> RANDOMKEY    #随机选择一个key;
"l1"
127.0.0.1:6379> RANDOMKEY
"z2"
127.0.0.1:6379> RANDOMKEY
"s2"
127.0.0.1:6379> rename s2 s3  #修改key名字;
OK
127.0.0.1:6379> keys s*
1) "s1"
2) "s3"
127.0.0.1:6379> type k2   #查看key类型;
string
127.0.0.1:6379> type l1
list
127.0.0.1:6379> type s1
set
127.0.0.1:6379> type z2
zset
127.0.0.1:6379> type h2
hash
127.0.0.1:6379> del h2     #删除key;
(integer) 1
127.0.0.1:6379> keys h*
(empty list or set)

Redis常用操作(服务)

127.0.0.1:6379> dbsize   #查询key数量;
(integer) 9
127.0.0.1:6379> info     #查询服务的相关信息,服务端,客户端,内存,主从,集群等;
127.0.0.1:6379> info Keyspace   #查询某个信息;
# Keyspace 
db0:keys=9,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
127.0.0.1:6379> select 1 
OK
127.0.0.1:6379[1]> keys *
1) "h1"
127.0.0.1:6379[1]> flushdb   #清空当前库;
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> bgsave    #后台运行,保存数据到rdb中;
Background saving started
127.0.0.1:6379> save     #前台运行,保存;
OK
127.0.0.1:6379> config get *   #查看所有设置;

127.0.0.1:6379> config get bind  #查看某项设置;
1) "bind"
2) "127.0.0.1"
127.0.0.1:6379> config get timeout
1) "timeout"
2) "0"
127.0.0.1:6379> CONFIG SET timeout 5  #设置某项;
OK
127.0.0.1:6379> config get timeout
1) "timeout"
2) "5"
127.0.0.1:6379> config get dir
1) "dir"
2) "/data/redis"
127.0.0.1:6379> config get dbfilename   #只要把备份的数据文件,修改好名字放到相应目录,重启服务,即可恢复数据;
1) "dbfilename"
2) "dump.rdb"

Redis安全设置

  • 设置监听ip (被监听的IP才能登陆redis)
    bind 127.0.0.1 2.2.2.2//可以是多个ip,用空格分隔
    设置成内网IP

  • 设置监听端口

[root@draft redis4]# vi /etc/redis.conf   #修改配置文件,后启动redis;
port 16000
[root@draft redis4]# netstat -lntp |grep redis
tcp        0      0 127.0.0.1:16000         0.0.0.0:*               LISTEN      15237/redis-server
[root@draft redis4]# redis-cli -h 127.0.0.1 -p  16000   #登陆命令;
127.0.0.1:16000> 
  • 设置密码
[root@draft redis4]# vi /etc/redis.conf   #修改配置文件,后启动redis;
requirepass password   #增加此语句,增加password;
[root@draft redis4]# redis-cli -h 127.0.0.1 -p  16000 -a 'password'
127.0.0.1:16000> 
  • 将config命令改名
[root@draft redis4]# vi /etc/redis.conf   #修改配置文件,后启动redis;
rename-command CONFIG shezhi   #增加此语句;
127.0.0.1:16000> config get bind
(error) ERR unknown command 'config'
127.0.0.1:16000> shezhi get bind   #测试新的命名;
1) "bind"
2) "127.0.0.1"
  • 禁掉config命令
rename-command CONFIG ""   #增加此语名,config命令变成空;
发布了125 篇原创文章 · 获赞 5 · 访问量 4620

猜你喜欢

转载自blog.csdn.net/tanyyinyu/article/details/103515420