21.13/21.14/21.15 redis常用操作

 Redis常用操作 (string, list)

  •  set key1 aminglinux

  •  get key1

  •  set key1 aming//第二次赋值会覆盖

  •  setnx key2 aaa //返回1 如果key2不存在直接创建key

  •  setnx key2 bbb  //返回0,如果key2存在,返回0

  •  setex key3 10 1 //给key3设置过期时间为10s,值为1,若key已经存在,会覆盖新的值

  •  mset k1 1 k2 a k3 c

  •  mget k1 k3 k2

  •  lpush lista a //从左侧加入一个元素

  •  lpush lista b

  •  lrange lista 0 -1 

  •  lpop lista //从左侧取出第一个元素

  •  rpush lista 1 //从右侧加入一个元素

  •  rpop lista //从右侧取出第一个元素

 string

 #set,get用法

 
set
 key1 aminglinux

 get key1

 
#set第二次被覆盖

 
set
 key1 aming//第二次赋值会覆盖

 
#setnx 检查key值是否存在,key存在,则不被覆盖,key不存在,直接创建key

 127.0.0.1:6379
>
 get key1

"10"

127.0.0.1:6379
>
 get key10

(
nil
)

 127.0.0.1:6379
>
 SETNX key1 100

(
integer
)
 0

127.0.0.1:6379
>
 SETNX key10 100

(
integer
)
 1

#设置过期时间,

格式:set 
`
key
`
 
`
value
`
 ex 
`
time
`

127.0.0.1:6379
>
 
set
 key11 111 ex 10

OK

#setex用法,给key11设置过期时间为10s,值为1,若key已经存在,会覆盖新的值

格式: SETEX 
`
key
`
 
`
seconds
`
 
`
value
`

127.0.0.1:6379
>
 SETEX key11 1000 11

OK

127.0.0.1:6379
>
 get key11

"11"

list

127.0.0.1:6379
>
 LPUSH list11 aaa

(
integer
)
 1

127.0.0.1:6379
>
 LPUSH list11 bbb

(
integer
)
 2

127.0.0.1:6379
>
 LPUSH list11 ccc

(
integer
)
 3

127.0.0.1:6379
>
 LRANGE list11 0 -1

1
)
 
"ccc"

2
)
 
"bbb"

3
)
 
"aaa"

#从左侧取出第一个元素 ,最上的一个元素

127.0.0.1:6379
>
 LPOP list11

"ccc"

#从右侧取出第一个元素,最下的一个元素

127.0.0.1:6379
>
 RPOP list11

"aaa"

#取出的value,不会再存在list里面

127.0.0.1:6379
>
 LRANGE list11 0 -1

1
)
 
"bbb"

Redis常用操作(list, set) 

  •  linsert  lista  before  2 3  //在2的前面插入一个元素为3

  •  lset lista 4 bbb  //把第5个元素修改为bbb

  •  lindex lista 0  //查看第1个元素

  •  lindex lista 3  //查看第4个元素

  •  llen lista  //查看链表中有几个元素

  •  sadd seta aaa  //向集合seta中放入元素

  •  smembers seta   //查看集合中的所有元素 

  •  srem  seta    aaa //删除元素 

  •  spop  seta    //随机取出一个元素,删除

  •  sdiff  seta  setb   //求差集,以seta为标准

  •  sdiffstore setc seta setb   //求差集并且存储,存储到了setc里 

  •  sinter seta setb    //求交集

  •  sinterstore  setd seta setb  //将交集存储setd 

  •  sunion seta setb  //求并集

  •  sunionstore sete seta setb   //求并集并存储到sete

#在xxx的前面插入一个元素为xxx

127.0.0.1:6379
>LRANGE list11 0 -1

1
)
 
"bbb"

127.0.0.1:6379
>LINSERT list11 before bbb aaa

(
integer
)
 2

127.0.0.1:6379
>LRANGE list11 0 -1

1
)
 
"aaa"

2
)
 
"bbb"

#在xxx的后面插入一个元素为xxx

127.0.0.1:6379
>LINSERT list11 after bbb ccc

(
integer
)
 3

127.0.0.1:6379
>LRANGE list11 0 -1

1
)
 
"aaa"

2
)
 
"bbb"

3
)
 
"ccc"

#把第1个元素修改为123 ,用下标表示,0=no.1,1=no.2,以此类推

格式 LET 
`
key
`
 
`
位置
`
 
`
value
`

127.0.0.1:6379
>LSET list11 0 123

OK

127.0.0.1:6379
>LRANGE list11 0 -1

1
)
 
"123"

2
)
 
"bbb"

3
)
 
"ccc"

#查看第一个元素

127.0.0.1:6379
>LRANGE list11 0 -1

1
)
 
"123"

2
)
 
"bbb"

3
)
 
"ccc"

127.0.0.1:6379
>LINDEX list11 0

"123"

#查看链表中有几个元素

LLEN list11

#随机取出一个元素,删除

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
>SPOP seta

"aaa"

127.0.0.1:6379
>SMEMBERS seta

1
)
 
"bbb"

Redis常用操作(set, zset) 

  •  sismember seta aaa  //判断一个元素是否属于一个集合

  •  srandmember  seta  //随机取出一个元素,但不删除

  •  zadd zseta 11 123 //创建有序集合

  •  zrange zseta 0 -1   //显示所有元素,按顺序显示

  •  zrange zseta 0 -1 withscores   //可以带上分值

  •  zrem zseta 222  //删除指定元素

  •  zrank zseta  222  //返回元素的索引值,索引值从0开始,按score正向排序

  •  zrevrank zseta 222   //同上,不同的是,按score反序排序

  •  zrevrange  zseta  0 -1  反序显示所有元素,并带分值

  •  zcard zseta  //返回集合中所有元素的个数

  •  zcount  zseta 1 10  //  返回分值范围1-10的元素个数

  •  zrangebyscore  zseta 1 10 // 返回分值范围1-10的元素

  •  zremrangebyrank zseta  0 2  //删除索引范围0-2的元素,按score正向排序

  •  zremrangebyscore zseta  1 10 //删除分值范围1-10的元素

#创建有序集合
127.0.0.1:6379> ZADD zseta 11 123

(integer) 1

127.0.0.1:6379> ZADD zseta 22 223

(integer) 1

127.0.0.1:6379> ZRANGE zseta 0 -1

1) "123"

2) "223"

127.0.0.1:6379> 
#删除指定元素
127.0.0.1:6379> ZREM zseta 123

(integer) 1

127.0.0.1:6379> ZREM zseta 223

(integer) 1

127.0.0.1:6379>
#返回元素的索引值,索引值(integer后面的值)从0开始,按score正向排序,
127.0.0.1:6379> ZADD zseta 10 aaa

(integer) 1

127.0.0.1:6379> ZADD zseta 30 cccc

(integer) 1

127.0.0.1:6379> ZADD zseta 20 bbb

(integer) 1

127.0.0.1:6379> ZRANGE zseta 0 -1

1) "aaa"

2) "bbb"

3) "cccc"

127.0.0.1:6379> ZRANk zseta aaa
#反序排序
127.0.0.1:6379> ZREVRANGE zseta 0 -1

1) "cccc"

2) "bbb"

3) "aaa"
(integer) 0

127.0.0.1:6379> ZRANk zseta ccc

(nil)

127.0.0.1:6379> ZRANk zseta cccc

(integer) 2

Redis常用操作(hash) 

  •  hset user1  name aming  //建立hash

  •  hset user1 age 30 

  •  hset user1 job  it

  •  hgetall user1

  •  hmset user2  name aming age 30  job it    //批量建立键值对

  •  hmget user2

  •  hmget user2 name age  job

  •  hdel user2 job   //删除指定filed

  •  hkeys user2   //打印所有的key

  •  hvals user2  //打印所有的values

  •  hlen user2  //查看hash有几个filed

 

21.16 redis操作键值

key * //取出所有key
key my* //模糊匹配
exits name//有name键返回1,否则返回0;
del key1//删除一个key //成功返回1,否则返回0;
EXPIRE key1 100 //设置key1 100s后过期
ttl key//查看键还有多长时间过期,单位是s,当key不存在时,返回-2.
当key存在但没有设置剩余生存时间时,返回-1.否则,返回key的剩余生存时间。
select 0//代表选择当前数据库,默认进入0的数据库
move age 1//把age移动到1 的数据库
persitt key1//取消key1的过期时间
randomkey//随机返回一个key
rename oldname newname//重命名key
typekey1//返回键的类型

dbsize//返回当前数据库中key的数目

info//返回redis数据库状态信息

flushdb//清空当前数据库中所有的键

flushshall //清空所有数据库中的所有的key

bgsave//保存数据到rdb文件中,在后台运行

save//作用同上,但是在前台运行

config get *//获取所有配置参数

config get dir//更改配置参数

数据恢复:首先定义或者确定dir目录和dbfilename,然后把备份的rdb文件放到dir目录下面,重启redis服务即可恢复数据

21.17 redis安全设置

设置监听ip

bind 127.0.0.1 2.2.2.2//可以是多个ip,用空格分隔

设置监听端口

port 16000

设置密码

requirepass aming>com

# The filename where to dump the DB
dbfilename dump.rdb

# The working directory.
requirepass aming>com
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /data/redis

redis-cli -a 'aming>com'

killall redis-server 关闭redis

redis-server /etc/redis.conf 开启redis

将config命令改名

rename-command CONFIG aming

[root@web-01 ~]# redis-cli -a 'aming>com'
127.0.0.1:6379> config
(error) ERR unknown command 'config'
127.0.0.1:6379> aming
(error) ERR wrong number of arguments for 'config' command
127.0.0.1:6379> config get dir
(error) ERR unknown command 'config'
127.0.0.1:6379> aming get dir
1) "dir"
2) "/data/redis"

禁掉config命令

rename-command CONFIG""