redis常用操作、redis操作键值、redis安全设置

Redis常用操作

Redis常用操作(String & list)

set key1 Anna ---当key1 已经创建,第二次赋值将会被覆盖掉
[root@root-01 ~ ]# redis-cli 
127.0.0.1:6379> 

127.0.0.1:6379> set key1 Anna
OK
127.0.0.1:6379> set key2 Quan
OK
127.0.0.1:6379> set key1 dong       
OK
127.0.0.1:6379> get key1
"dong"

setnx key1 Anna ---检查key是否存在
[root@root-01 ~ ]# redis-cli 
127.0.0.1:6379> 

127.0.0.1:6379> SETNX key1 Anna
(integer) 0
说明:如果key存在那么会返回0


127.0.0.1:6379> SETNX key3 Anna
(integer) 1
127.0.0.1:6379> get key3
"Anna"
说明:如果key不存在那么会返回1,并且创建

setex key4 10 w ---创建key4设置过期时间为10s, 值为w,若key已经存在,会覆盖新的值
创建:
127.0.0.1:6379> SETEX key4 10 w
OK
127.0.0.1:6379> get key4
"w"


给key4重新设置过期时间及值:
127.0.0.1:6379> SETEX key4 100 hh
OK
127.0.0.1:6379> get key4
"hh"

lpush list a ---从左边加入一个元素
127.0.0.1:6379> lpush list a
(integer) 1
127.0.0.1:6379> lpush list b
(integer) 2
127.0.0.1:6379> lpush list c
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1
1) "c"
2) "b"
3) "a"

lpop list  ---从左边取出第一个元素

说明:lpop 取元素是从顺数第一个取的

127.0.0.1:6379> LPOP list
"c"
127.0.0.1:6379> LRANGE list 0 -1
1) "b"
2) "a"

rpop list ---从右边取出第一个元素

说明:说明:rpop 取元素是从倒数第一个取的

127.0.0.1:6379> rpop list
"a"
127.0.0.1:6379> LRANGE list 0 -1
1) "gg"
2) "dd"
3) "cc"
4) "b"

linsert list AFTER gg kk ---在gg的前面插入一个元素为kk 
 LSET list 5 uu ---在5的前面插入一个元素为uu (5表示位置)
127.0.0.1:6379> LINSERT list AFTER gg kk
(integer) 5
127.0.0.1:6379> LINSERT list AFTER b mm
(integer) 6
127.0.0.1:6379> LRANGE list 0 -1
1) "gg"
2) "kk"
3) "dd"
4) "cc"
5) "b"
6) "mm"

或是lset :
127.0.0.1:6379> LSET list 5 uu
OK
127.0.0.1:6379> LRANGE list 0 -1
1) "gg"
2) "kk"
3) "dd"
4) "cc"
5) "b"
6) "uu"

lindex list 0 ---查看第1个元素
lindex list 5 ---查看第6个元素
127.0.0.1:6379> LRANGE list 0 -1
1) "gg"
2) "kk"
3) "dd"
4) "cc"
5) "b"
6) "uu"

127.0.0.1:6379> LINDEX list 0
"gg"
127.0.0.1:6379> LINDEX list 5
"uu"
127.0.0.1:6379> LINDEX list 2
"dd"

llen list ---查看链表中有几个元素
127.0.0.1:6379> LLEN list
(integer) 6


redis常用操作(set)

sadd seta aaa ---向集合seta中放入元素
127.0.0.1:6379> SADD seta aaa
(integer) 1
127.0.0.1:6379> SADD seta bbb
(integer) 1
127.0.0.1:6379> SADD seta cc
(integer) 1
smembers seta ---查看集合中的元素 
127.0.0.1:6379> SMEMBERS seta
1) "cc"
2) "aaa"
3) "bbb"
srem seta aaa ---删除集合中的某个元素 
127.0.0.1:6379> SREM seta aaa
(integer) 1
127.0.0.1:6379> SMEMBERS seta
1) "cc"
2) "bbb"
spop seta ---随机取出一个元素删除
127.0.0.1:6379> SMEMBERS seta
1) "cc"
2) "bbb"
127.0.0.1:6379> SPOP seta
"cc"
127.0.0.1:6379> SMEMBERS seta
1) "bbb"

SDIFF seta setb ---求差集,哪个集合放在前面就为标准(现在是以seta为标准)
sdiffstore setc seta setb ---求差集并且存储到一个新的集合setc
127.0.0.1:6379> SMEMBERS seta
1) "aaa"
2) "222"
3) "bbb"
4) "ccc"
127.0.0.1:6379> SMEMBERS setb
1) "ddd"
2) "222"
3) "ccc"

求差集:
127.0.0.1:6379> SDIFF seta setb
1) "aaa"
2) "bbb"


求的差集存储到一个新的集合setc:
127.0.0.1:6379> sdiffstore setc seta setb
(integer) 2
127.0.0.1:6379> SMEMBERS setc
1) "aaa"
2) "bbb"
 sinter seta setb --求交集
 SINTERSTORE setd seta setb ---求交集并且存储到一个新的集合setd
两个集合的元素:
127.0.0.1:6379> SMEMBERS seta
1) "aaa"
2) "222"
3) "bbb"
4) "ccc"
127.0.0.1:6379> SMEMBERS setb
1) "ddd"
2) "222"
3) "ccc"


求交集:
127.0.0.1:6379> SINTER seta setb
1) "222"
2) "ccc"


求交集并存储:
127.0.0.1:6379> SINTERSTORE setd seta setb
(integer) 2
127.0.0.1:6379> SMEMBERS setd
1) "222"
2) "ccc"
SUNION seta setb ---求并集(求并集是把两个集合的元素拿出来,有重复的去重复,最终得到的结果.)
sunionstore setg seta setb ---求并集并且存储到一个新的集合setg
两个集合的元素:
127.0.0.1:6379> SMEMBERS seta
1) "aaa"
2) "222"
3) "bbb"
4) "ccc"
127.0.0.1:6379> SMEMBERS setb
1) "ddd"
2) "222"
3) "ccc"

求并集:
127.0.0.1:6379> SUNION seta setb
1) "ccc"
2) "222"
3) "aaa"
4) "ddd"
5) "bbb"


求并集并存储到setg:
127.0.0.1:6379> sunionstore setg seta setb
(integer) 5
127.0.0.1:6379> SMEMBERS setg
1) "ccc"
2) "222"
3) "aaa"
4) "ddd"
5) "bbb"
 SISMEMBER seta aaa ---判断一个元素是否属于一个集合
seta集合的元素:
127.0.0.1:6379> SMEMBERS seta
1) "aaa"
2) "222"
3) "bbb"
4) "ccc"


判断aaa是否属于seta集合:
127.0.0.1:6379> SISMEMBER seta aaa
(integer) 1
127.0.0.1:6379> SISMEMBER seta ggg
(integer) 0

说明::若aaa属于seta集合,返回1,若不属于返回0
 SRANDMEMBER seta ---随机取出一个元素,但不删除
127.0.0.1:6379> SRANDMEMBER seta
"aaa"
127.0.0.1:6379> SMEMBERS seta
1) "aaa"
2) "222"
3) "bbb"
4) "ccc"


redis常用操作 (zset)

ZADD zseta 11 223 ---创建有序集合
ZRANGE zseta 0 -1 ---显示所有元素
创建有序集合:
127.0.0.1:6379> ZADD zseta 11 223
(integer) 1
127.0.0.1:6379> ZADD zseta 0 12a
(integer) 1


显示所有元素:
127.0.0.1:6379> ZRANGE zseta 0 -1
1) "12a"
2) "223"

ZREM zseta 12a ---删除指定的元素
127.0.0.1:6379> ZREM zseta 12a
(integer) 1
127.0.0.1:6379> ZRANGE zseta 0 -1
1) "223"

ZRANK zseta wu331 ---返回元素的索引值忙索引值从0开始,按score正向排序
ZREVRANK zseta wu331 ---返回元素的索引值忙索引值从0开始,按score反向排序
seta所有元素:
127.0.0.1:6379> ZRANGE zseta 0 -1
1) "223"
2) "wu331"
3) "wu332"
4) "wu505"

返回元素索引值
127.0.0.1:6379> ZRANK zseta wu331
(integer) 1

返回元素索引值
127.0.0.1:6379> ZREVRANK zseta wu331
(integer) 2

zrevrange zseta 0 -1 ---反序显示所有元素
zcard zseta ---返回zseta集合中的个数
反序显示zseta的元素:
127.0.0.1:6379> zrevrange zseta 0 -1
1) "wu505"
2) "wu332"
3) "wu331"
4) "223"


返回zseta集合中的个数:
127.0.0.1:6379> zcard zseta
(integer) 4
zcount zseta 1 5 ---返回分值范围1-5的元素个数 
ZRANGEBYSCORE zseta 5 10 --返回分值范围5-10的元素
返回分值范围1-5的元素个数:
127.0.0.1:6379> ZCOUNT zseta 1 5
(integer) 1
127.0.0.1:6379> ZCOUNT zseta 5 10
(integer) 3

返回分值范围5-10的元素
127.0.0.1:6379> ZRANGEBYSCORE zseta 5 10
1) "12a"
2) "12314q"
3) "1200"

ZREMRANGEBYRANK zseta 0 2 ---删除索引范围0-2的元素,按score正向排序
删除分值范围10-100的元素 --- ZREMRANGEBYSCORE zseta 10 100
zseta所有元素:
127.0.0.1:6379> zrevrange zseta 0 -1
1) "wu505"
2) "wu332"
3) "wu331"
4) "223"
5) "12314q"
6) "12a"


删除索引范围0-2的元素,按score正向排序:
127.0.0.1:6379> ZREMRANGEBYRANK zseta 0 2
(integer) 3
127.0.0.1:6379> zrange zseta 0 -1
1) "223"
2) "wu331"
3) "wu332"
4) "wu505"


删除分值范围10-100的元素:
127.0.0.1:6379> ZREMRANGEBYSCORE zseta 10 100
(integer) 4

127.0.0.1:6379> ZRANGE zseta 0 -1
(empty list or set)


Redis常用操作(hash)

HMSET hash3 1 a 2 b 3 c 4 d ---批量创建键值对
HGETALL hash3 ---查看所有键值对
HMGET hash3 1 2 ---获取指定键的值
hdel hash3 1 ---删除指定的键值对 
HKEYS hash3 ---打印所有的key 
hlen hash3 ---查看hash3有几个键 
批量创建键值对:
127.0.0.1:6379> HMSET hash3 1 a 2 b 3 c 4 d
OK

查看所有键值对:
127.0.0.1:6379> HGETALL hash3
1) "1"
2) "a"
3) "2"
4) "b"
5) "3"
6) "c"
7) "4"
8) "d"


获取指定键的值:
127.0.0.1:6379> HMGET hash3 1 2
1) "a"
2) "b"


删除指定的键值对:
127.0.0.1:6379> hdel hash3 1
(integer) 1
127.0.0.1:6379> HGETALL hash3
1) "2"
2) "b"
3) "3"
4) "c"
5) "4"
6) "d"


打印所有的key:
127.0.0.1:6379> HKEYS hash3
1) "2"
2) "3"
3) "4"


打印所有的values:
127.0.0.1:6379> hvals hash3
1) "b"
2) "c"
3) "d"

查看hash3有几个filed:
127.0.0.1:6379> hlen hash3
(integer) 3

 

 redis操作键值

Redis常用操作 (键值)

keys * ---取出所有key 
keys k* ---模糊匹配
exists key1 ---判断一个key是否存在(存在返回1,不存在返回0)
del key1 ---删除一个key (成功返回1,否则返回0)
EXPIRE key2 100  ---设置key2 100s后过期
ttl key2 ---查看键还有多长时间过期,单位是s,当key不存在时,返回-2
当key存在但没有设置剩余生存时间时,返回-1,否则返回key的剩余生存时间
select 0 ---选择当前数据库,默认进入0数据库
MOVE set1 1 ---把set1移动到1数据库
persist key3 ---取消key3的过期时间
RANDOMKEY ---随机返回一个key
RENAME set2 set7 --- set2重命名为set7
type key3 ---查看键的类型
取出所有key:
127.0.0.1:6379> keys *
 1) "set2"
 2) "seta"
 3) "key1"
 4) "k3"
 5) "set1"
 6) "setd"
 7) "setc"
 8) "zset"
 9) "key2"
10) "set3"
11) "hash2"
12) "setf"
13) "hash3"
14) "hash1"
15) "mykey"
16) "k2"
17) "k1"
18) "key3"
19) "list"
20) "setg"
21) "list1"
22) "setb"


模糊匹配:
127.0.0.1:6379> keys k*
1) "key1"
2) "k3"
3) "key2"
4) "k2"
5) "k1"
6) "key3"

判断一个key是否存在:
127.0.0.1:6379> exists key1
(integer) 1
127.0.0.1:6379> exists key22
(integer) 0


删除一个key:
127.0.0.1:6379> del key1
(integer) 1
127.0.0.1:6379> del key22
(integer) 0


设置key2 100s后过期:
127.0.0.1:6379> EXPIRE key2 100
(integer) 1

查看键还剩下多少过期时间:
127.0.0.1:6379> ttl key2
(integer) 90
127.0.0.1:6379> ttl key2
(integer) -2
127.0.0.1:6379> get key2
(nil)



选择当前数据库,默认进入0数据库:
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
 1) "set2"
 2) "seta"
 3) "k3"
 4) "set1"
 5) "setd"
 6) "setc"
 7) "zset"
 8) "set3"
 9) "hash2"
10) "setf"
11) "hash3"
12) "hash1"
13) "mykey"
14) "k2"
15) "k1"
16) "key3"
17) "list"
18) "setg"
19) "list1"
20) "setb"


把set1移动到1数据库:
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)

127.0.0.1:6379> MOVE set1 1
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "set1"
说明:没有把set1 移动到1,当select 1 再使用keys * 获取所有key时,显示没有任何的key


设置key3过期时间:
127.0.0.1:6379> EXPIRE key3 1000
(integer) 1

剩余生存时间:
127.0.0.1:6379> ttl key3
(integer) 998

取消key3的过期时间:
127.0.0.1:6379> persist key3
(integer) 1
127.0.0.1:6379> ttl key3
(integer) -1


随机返回一个key:
127.0.0.1:6379> RANDOMKEY
"zset"
127.0.0.1:6379> RANDOMKEY
"k2"
127.0.0.1:6379> RANDOMKEY
"k2"
127.0.0.1:6379> RANDOMKEY
"setc"
127.0.0.1:6379> RANDOMKEY
"setb"
127.0.0.1:6379> RANDOMKEY
"key3"


给set2重命名为set7:
127.0.0.1:6379> RENAME set2 set7
OK
127.0.0.1:6379> keys set*
1) "seta"
2) "setd"
3) "setc"
4) "set3"
5) "setf"
6) "set7"
7) "setg"
8) "setb"
说明:set2重命名为set7,set2就不存在了


返回键的类型
127.0.0.1:6379> type setb
set
127.0.0.1:6379> type mykey
string
127.0.0.1:6379> type hash3
hash
127.0.0.1:6379> type zset
zset
127.0.0.1:6379> type list
list


Redis常用操作(服务)

dbsize ---返回当前数据库中key的数目
返回当前数据库中key的数目:
127.0.0.1:6379> dbsize
(integer) 19
127.0.0.1:6379> keys *
 1) "seta"
 2) "k3"
 3) "setd"
 4) "setc"
 5) "zset"
 6) "set3"
 7) "hash2"
 8) "setf"
 9) "hash3"
10) "hash1"
11) "mykey"
12) "k2"
13) "set7"
14) "k1"
15) "key3"
16) "list"
17) "setg"
18) "list1"
19) "setb"



info ---返回redis数据库状态信息
返回redis数据库状态信息:
127.0.0.1:6379> info
# Server
redis_version:4.0.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:8d84a9a41712cf2d
redis_mode:standalone
os:Linux 3.10.0-514.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:2118
run_id:ba7a13be8dee8ff0a3747b2a23751e50bfac41f8
tcp_port:6379
uptime_in_seconds:14034
uptime_in_days:0
hz:10
lru_clock:14700586
executable:/root/redis-server
config_file:/etc/redis.conf

# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:831216
used_memory_human:811.73K
used_memory_rss:7966720
used_memory_rss_human:7.60M
used_memory_peak:831216
used_memory_peak_human:811.73K
used_memory_peak_perc:100.11%
used_memory_overhead:816326
used_memory_startup:765576
used_memory_dataset:14890
used_memory_dataset_perc:22.68%
total_system_memory:1023963136
total_system_memory_human:976.53M
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:9.58
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1507869733
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:6574080
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
aof_current_size:3123
aof_base_size:1516
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0

# Stats
total_connections_received:1
total_commands_processed:137
instantaneous_ops_per_sec:0
total_net_input_bytes:5134
total_net_output_bytes:13047
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:1
evicted_keys:0
keyspace_hits:69
keyspace_misses:6
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:923
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0

# Replication
role:master
connected_slaves:0
master_replid:cbbb63f55d8010ca2b950fa02770157efd8be791
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:12.99
used_cpu_user:5.66
used_cpu_sys_children:0.54
used_cpu_user_children:0.01

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=19,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0

flushdb ---清空当前数据库中所有key 
flushall ---清空数据库中所有的key,包括当前以及其他的数据库(在此不做演示)
清空当前数据库中所有key:
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "set1"
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
bgsave ---保存数据到rdb文件中,在后台运行
sava ---保存数据到rdb文件中,在当前窗口下运行,效果和bgsava一样

说明:若数据量很大的话,需要把内存里面的数据写入到rdb文件(磁盘)里面去,这过程有可能会慢、也有可能会快,这取决于数据量有多少. 

127.0.0.1:6379[1]> bgsave
Background saving started
 
config get * ---获取所有配置参数

说明:奇数是参数的名字,偶数的参数的值

127.0.0.1:6379[1]> config get *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "cluster-announce-ip"
  8) ""
  9) "unixsocket"
 10) ""
 11) "logfile"
 12) "/var/log/redis.log"
 13) "pidfile"
 14) "/var/run/redis_6379.pid"
 15) "slave-announce-ip"
 16) ""
 17) "maxmemory"
 18) "0"
 19) "maxmemory-samples"
 20) "5"
 21) "timeout"
 22) "0"
 23) "active-defrag-threshold-lower"
 24) "10"
 25) "active-defrag-threshold-upper"
 26) "100"
 27) "active-defrag-ignore-bytes"
 28) "104857600"
 29) "active-defrag-cycle-min"
 30) "25"
 31) "active-defrag-cycle-max"
 32) "75"
 33) "auto-aof-rewrite-percentage"
 34) "100"
 35) "auto-aof-rewrite-min-size"
 36) "67108864"
 37) "hash-max-ziplist-entries"
 38) "512"
 39) "hash-max-ziplist-value"
 40) "64"
 41) "list-max-ziplist-size"
 42) "-2"
 43) "list-compress-depth"
 44) "0"
 45) "set-max-intset-entries"
 46) "512"
 47) "zset-max-ziplist-entries"
 48) "128"
 49) "zset-max-ziplist-value"
 50) "64"
 51) "hll-sparse-max-bytes"
 52) "3000"
 53) "lua-time-limit"
 54) "5000"
 55) "slowlog-log-slower-than"
 56) "10000"
 57) "latency-monitor-threshold"
 58) "0"
 59) "slowlog-max-len"
 60) "128"
 61) "port"
 62) "6379"
 63) "cluster-announce-port"
 64) "0"
 65) "cluster-announce-bus-port"
 66) "0"
 67) "tcp-backlog"
 68) "511"
 69) "databases"
 70) "16"
 71) "repl-ping-slave-period"
 72) "10"
 73) "repl-timeout"
 74) "60"
 75) "repl-backlog-size"
 76) "1048576"
 77) "repl-backlog-ttl"
 78) "3600"
 79) "maxclients"
 80) "10000"
 81) "watchdog-period"
 82) "0"
 83) "slave-priority"
 84) "100"
 85) "slave-announce-port"
 86) "0"
 87) "min-slaves-to-write"
 88) "0"
 89) "min-slaves-max-lag"
 90) "10"
 91) "hz"
 92) "10"
 93) "cluster-node-timeout"
 94) "15000"
 95) "cluster-migration-barrier"
 96) "1"
 97) "cluster-slave-validity-factor"
 98) "10"
 99) "repl-diskless-sync-delay"
100) "5"
101) "tcp-keepalive"
102) "300"
103) "cluster-require-full-coverage"
104) "yes"
105) "no-appendfsync-on-rewrite"
106) "no"
107) "slave-serve-stale-data"
108) "yes"
109) "slave-read-only"
110) "yes"
111) "stop-writes-on-bgsave-error"
112) "yes"
113) "daemonize"
114) "yes"
115) "rdbcompression"
116) "yes"
117) "rdbchecksum"
118) "yes"
119) "activerehashing"
120) "yes"
121) "activedefrag"
122) "no"
123) "protected-mode"
124) "yes"
125) "repl-disable-tcp-nodelay"
126) "no"
127) "repl-diskless-sync"
128) "no"
129) "aof-rewrite-incremental-fsync"
130) "yes"
131) "aof-load-truncated"
132) "yes"
133) "aof-use-rdb-preamble"
134) "no"
135) "lazyfree-lazy-eviction"
136) "no"
137) "lazyfree-lazy-expire"
138) "no"
139) "lazyfree-lazy-server-del"
140) "no"
141) "slave-lazy-flush"
142) "no"
143) "maxmemory-policy"
144) "noeviction"
145) "loglevel"
146) "notice"
147) "supervised"
148) "no"
149) "appendfsync"
150) "everysec"
151) "syslog-facility"
152) "local0"
153) "appendonly"
154) "yes"
155) "dir"
156) "/data/redis"
157) "save"
158) "900 1 300 10 60 10000"
159) "client-output-buffer-limit"
160) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
161) "unixsocketperm"
162) "0"
163) "slaveof"
164) ""
165) "notify-keyspace-events"
166) ""
167) "bind"
168) "127.0.0.1"
 
config get dir ---获取配置的参数
config set timeout 1000 ---更改配置参数
获取配置参数:
127.0.0.1:6379[1]> CONFIG GET dir
1) "dir"
2) "/data/redis"
127.0.0.1:6379[1]> CONFIG GET bind
1) "bind"
2) "127.0.0.1"


更改配置参数:
127.0.0.1:6379[1]> config set timeout 1000
OK
127.0.0.1:6379[1]> CONFIG GET timeout
1) "timeout"
2) "1000"

数据恢复 --首先定义或者确定dir目录和dbfilename, 然后把备份的rdb文件放到dir目录下面,重启redis服务即可恢复数据
127.0.0.1:6379[1]> config get dir
1) "dir"
2) "/data/redis"
127.0.0.1:6379[1]> config get dbfilename
1) "dbfilename"
2) "dump.rdb"


 redis安全设置

说明:关于redis安全,很多因为redis被黑导致系统被黑的案例,是怎么黑的呢? 原因很简单,就是redis服务启动了,结果redis监听了一个全网IP,如果服务器没有做iptables规则,公网IP亦开放着,所以别人就可以远程去连Redis服务器. Redis没有密码,直接连接进来,相当是获取到了超级管理员的权限,就可以设置dir目录为/root/.ssh/, dbfilename设置为authorized_keys ,/root/.ssh/authorized_keys是存放公钥的文件,黑客就可以把他自己的公钥放这个文件里面,那黑客就可以登录了,这也就是Redis的漏洞. 解决这个漏洞很简单,设置一个密码,监听内网IP加上防火墙,或是普通用户的身份去启动redis.

设置监听IP
bind 127.0.0.1 192.168.2.116  ---可以是多个IP,用空格分隔

设置监听端口
port 16000

设置密码 (密码为:anna.com)

编辑配置文件:
vim /etc/redis.conf
加一行:
requirepass anna.com

重新启动redis:
[root@root-01 ~]# killall redis-server
[root@root-01 ~]# redis-server /etc/redis.conf 

登录:
[root@root-01 ~]# redis-cli -a 'anna.com'
127.0.0.1:6379> 
说明:如果登录时不加密码,直接redis-cli会报错

将config命令改名

说明:这样可以提高安全,因为把config更改为anna外人并不知道

编辑配置文件:
vim /etc/redis.conf

找到rename-command在下面一行加入:
rename-command CONFIG anna


重新启动redis:
[root@root-01 ~]# killall redis-server
[root@root-01 ~]# redis-server /etc/redis.conf 

登录敲config get dir 会报错,提示不知config命令
127.0.0.1:6379> config get dir
(error) ERR unknown command 'config'

敲anna get dir 就可以获取到配置参数
127.0.0.1:6379> anna get dir
1) "dir"
2) "/data/redis"

 

转载于:https://my.oschina.net/AnnaWu/blog/1550455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值