操作数据:redis具备五种数据类型
String
Hash
List
Set
Zset
String类型(包含基础命令)
keys * :查看当前redis节点(启动的每一个redis服务都叫redis节点。)所有已存在的key值。
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name hanlaoshi
OK
127.0.0.1:6379> set location beijing
OK
127.0.0.1:6379> keys *
1) "location"
2) "name"
127.0.0.1:6379>
set key value:存储一个key-value结构的数据(String),覆盖一个同名key值得数据
127.0.0.1:6379> set age 22
OK
127.0.0.1:6379> keys *
1) "location"
2) "age"
3) "name"
127.0.0.1:6379> get age
"22"
127.0.0.1:6379> set age 33
OK
127.0.0.1:6379> get age
"33"
127.0.0.1:6379>
get key:获取当前key对应的value数据
127.0.0.1:6379> get age
"22"
127.0.0.1:6379> set age 33
OK
127.0.0.1:6379> get age
"33"
127.0.0.1:6379>
select 整数:redis中默认存在16个数据分库(database),index号0-15,在一个服务器节点上,可以区分多种类型,多种功能的数据库仓库,默认登录的是0号分库(现在使用不多)
127.0.0.1:6379> select 1
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> keys *
1) "location"
2) "age"
3) "name"
127.0.0.1:6379>
exists key:判断当前节点是否包含key的数据。
get也可以完成这个任务。redis在key-value结构的value存储容量是512M。使用get判断存在会先读在判断数据是否为空,浪费资源
127.0.0.1:6379> exists haha kaka age
(integer) 1
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists haha
(integer) 0
127.0.0.1:6379>
del key:删除key值对应的key-value数据;
127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> del haha
(integer) 0
127.0.0.1:6379> keys *
1) "location"
2) "name"
127.0.0.1:6379>
type key:查看当前key的类型
127.0.0.1:6379> type name
string
127.0.0.1:6379>
help 命令名称:一般到官网查询详细讲解;按照案例
save:将当前的内存数据保存到磁盘文件(根目录dump.rdb)
127.0.0.1:6379> keys *
1) "location"
2) "name"
127.0.0.1:6379> save
OK
127.0.0.1:6379>
save前,save后观察redis根目录的dump.rdb大小可以发现已经存储到持久化文件
flushall:将当前redis所有数据清洗,包括持久化文件,内存数据(创建集群的时候使用)
127.0.0.1:6379> keys *
1) "location"
2) "name"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set name wanglaoshi
OK
127.0.0.1:6379[1]> set age 11
OK
127.0.0.1:6379[1]> keys *
1) "age"
2) "name"
127.0.0.1:6379[1]> save
OK
127.0.0.1:6379[1]> flushall
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> keys *
(empty list or set)
127.0.0.1:6379>
flushdb:清空一个分库的数据,不删除持久化文件内容(进行测试使用)
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> keys (
(empty list or set)
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379>
redis中string字符串如果是纯数字,也有一些简单的数字操作命令
incr decr key:自增1,自减1;计步器
127.0.0.1:6379> set num 100
OK
127.0.0.1:6379> incr num
(integer) 101
127.0.0.1:6379> decr num
(integer) 100
127.0.0.1:6379>
多步计步器:incrby decrby key 整数:对key的value数字自增自减去整数步数
127.0.0.1:6379> incrby num 10
(integer) 110
127.0.0.1:6379> decrby num 10
(integer) 100
127.0.0.1:6379>
mset mget:批量操作(不支持多节点分布式,只能对本节点数据进行处理)(测试时确定当前节点拥有的数据)
127.0.0.1:6379> mset num1 200 num2 300 num3 400
OK
127.0.0.1:6379> keys *
1) "num3"
2) "name"
3) "num"
4) "100"
5) "num1"
6) "num2"
127.0.0.1:6379> mget num1 num2 num3
1) "200"
2) "300"
3) "400"
127.0.0.1:6379>
LRU(lasted recent unused)自动删除策略:如果redis内存达到自动删除启动瓶颈 Last Recent Unused最近最久未使用key
expire key:对key添加超时过期的设定
配合ttl key可以查看 key值剩余时间,已经超时的内容删除,ttl剩余时间是-2 -1表示永久数据
127.0.0.1:6379> ttl num1
(integer) -2
127.0.0.1:6379> keys *
1) "num3"
2) "name"
3) "num"
4) "100"
5) "num2"
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379>
append key value :对key对应的value进行追加数据操作;
Hash数据类型
对应value为hash结构的数据都是面向对象的数据结构