redis教程 https://www.yiibai.com/redis/redis_commands.html
0、查看redis版本
# redis-cli --version
redis-cli 2.8.9
0.1、redis数据库、key 和 value的介绍与查看
(1)redis数据库,默认不显示只有有数据的数据库才会显示出来
redis默认有16个数据库,分别是db0 - db15,可以通过命令info查看所有的数据库,通过select 进入指定的数据库# 登录redis
redis-cli -p 6379 -h r-2zef1haaokr2j52v2n.redis.rds.aliyuncs.com -a Redcore@redis # -a表示密码
r-2zef1haaokr2j52v2n.redis.rds.aliyuncs.com:6379>使用info命令查看到这里有数据的数据库分别是db0 db1 db3
10.1.2.12:6379> info
# Keyspace
db0:keys=4,expires=0,avg_ttl=0 #db0有4个key
db1:keys=3855523,expires=0,avg_ttl=0 #db1有3855523个key
db3:keys=1,expires=0,avg_ttl=0 #db3有1个key使用select进入数据库
10.1.2.12:6379> select 3 #进入db3,db3编号就是3
OK
10.1.2.12:6379[3]> keys * #这里的数字[3]表示db3
1) "test" #这里只有1个key(2)key和value
每一个数据库可以存放很多个key,每一个key可以存放一个value
10.1.2.12:6379[3]> select 15 #进入db15
OK
10.1.2.12:6379[15]> set name "Alex" #创建key和value
OK
10.1.2.12:6379[15]> set age 36 #创建key和value
OK
10.1.2.12:6379[15]> keys * #查看所有的key
1) "age"
2) "name"
10.1.2.12:6379[15]> get name #查看key的内容
"Alex"
10.1.2.12:6379[15]> info #再次查看redis所有的数据库
# Keyspace
db0:keys=4,expires=0,avg_ttl=0
db1:keys=3855523,expires=0,avg_ttl=0
db3:keys=1,expires=0,avg_ttl=0
db15:keys=2,expires=0,avg_ttl=0127.0.0.1:6379> config get databases # 查看有16个数据库
1) "databases"
2) "16"
1、登录redis服务
方法一(适用于多实例):
[root@localhost ~]# /alidata/redis/bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> 方法二(适用于单实例):
[root@localhost ~]# /alidata/redis/bin/redis-cli
127.0.0.1:6379>
2、保存redis当前缓存数据到磁盘
127.0.0.1:6379> save
OK
3、创建key(注意:redis每次创建key时如果是相同的key会进行覆盖操作)
127.0.0.1:6379> set name "Alex"
OK#set表示创建
name表示key
Alex表示key的内容
4、查看所有key
#查看redis的所有数据库里面一共有多少个key
10.1.2.12:6379[1]> info
# Keyspace
db0:keys=4,expires=0,avg_ttl=0 #db0里面有4个key
db1:keys=3855523,expires=0,avg_ttl=0 #db1里面有3855523个key
db3:keys=1,expires=0,avg_ttl=0 #db3里面有1个key
db15:keys=2,expires=0,avg_ttl=0 #db15里面有2个key#查看某一个数据库里面都有哪些key
10.1.2.12:6379> select 15 #进入db15
127.0.0.1:6379> dbsize #查看db15里面一共有几个key
(integer) 2
127.0.0.1:6379> keys * #查看db15里面所有key的名称
1) "name"
2) "age"
6、查看指定key的内容
127.0.0.1:6379> get name
"Alex"
7、查看key是否存在(1为存在,0为不存在)
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists age2
(integer) 0
8、查看redis内存消耗
127.0.0.1:6379> info
# Memory
used_memory:15128469488 #redis数据占用了多少内存(字节显示)
used_memory_human:14.09G #redis数据占用了多少内存(G显示,便于可读性)
used_memory_rss:15497564160 #redis进程占用了多少内存(字节)
used_memory_peak:15164396944 #redis的峰值,最高运行到多大内存(字节)
used_memory_peak_human:14.12G #redis的峰值,最高运行到多大内存(G显示,便于可读性)
used_memory_lua:33792 #lua引擎所占用的内存大小(字节)
mem_fragmentation_ratio:1.02 #内存碎片率
mem_allocator:jemalloc-3.2.0 #redis内存分配器版本,在编译时指定的。有libc、jemalloc、tcmalloc这3种。
9、设置key的过期时间
(1)先创建一个key
127.0.0.1:6379> set name "oldboy"
OK(2)设置这个key的过期时间为10秒
127.0.0.1:6379> expire name 10 #pexpire可以设置单位为毫秒;expire可以设置单位为秒
(integer) 1(3)查看key的剩余时间还有5秒
127.0.0.1:6379> ttl name #ttl以秒显示;pttl以毫秒显示
(integer) 5(4)查看key的剩余时间还有2秒
127.0.0.1:6379> ttl name
(integer) 2(5)10秒过后这个key就被删掉了(-2表示key不存在)
127.0.0.1:6379> ttl name
(integer) -2(6)如果key没有设置过期时间就用-1表示
127.0.0.1:6379> ttl name
(integer) -1
10、查看当前redis的内存限制和内存策略
#当前redis最大内存是没有限制的(0表示不限制)
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "0"#当前reids的内存策略是“volatile-lru”,表示达到最大内存限制后会清除不常用的key
127.0.0.1:6379> config get maxmemory-policy
1) "maxmemory-policy"
2) "volatile-lru"
11、手动添加内存限制和策略
#由于我的物理内存是8G,我这里配置redis的最大内存限制为4G(单位为字节1024B = 1KB)
127.0.0.1:6379> config set maxmemory 4294967296
OK#将内存策略改为“volatile-ttl”,表示达到最大内存限制后会删除即将过期的key
127.0.0.1:6379> config set maxmemory-policy "volatile-ttl"
OK#再次查看内存限制是否生效
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "4294967296"#再次查看内存策略是否生效
127.0.0.1:6379> config get maxmemory-policy
1) "maxmemory-policy"
2) "volatile-ttl"