Redis数据库的启动与关闭:
1、启动redis服务:(其实就是启动redis服务器)
redis-server:前台启动(默认采用的是redis-conf配置文件,这个文件决定了ip地址与端口号)
redis-server &:后台启动
redis-server redis-conf6380:这个配置文件可以使我们自定义端口与ip启动服务,在主从同步用到了。
2、客户端发起连接请求
redis-cli:启动redis的客户端,默认连接本机(127.0.0.1)上的6379端口上的redis服务。
redis-cli -h 192.168.2.129 -p 6379:启动redis客户端,指定ip和port。
3.退出客户端
exit/quit
4、关闭redis服务:
redis-cli -h 192.168.2.129 -p 6379 shutdown :如果使用实际ip地址关闭,必须在非受保护模式下运行;
redis-cli -h 127.0.0.1 -p 6379 shutdown:无论在任何运行模式下都可以关闭。
=====================================================================================
关于redis的使用指令:
1、基本指令:
1)、测试redis性能:redis-benchmark(在任意目录下执行)
2)、测试redis服务是否正常运行:ping--->pong(我们敲击ping返回pong)
3)、统计redis服务端的信息:info [section]
info:查看redis所有的统计信息
info Replication:查看redis某一项统计信息,replication是【主从节点】参数
4)、切换数据库实例:redis自动创建16个数据库实例,并且给数据库实例进行编号(0-15),默认使用编号是0的数据库实例。
select 1 //切换到第二个数据库
5)、查看数据库中有记录的条数(键值对的个数):dbsize
6)、查看数据库中有哪些key:keys *
7)、清空当前数据库中所有的数据:flushdb
8)、清空所有数据库中的数据:flushall
2、redis的五种数据结构:
针对应用程序处理的不同数据类型存储在不同的数据结构中。
基本类型数据(八大基本类型、String)----string
数组、list----------------------------list
set-----------------------------------set
实体类--------------------------------hash
按照某种标准排序的set-----------------zset
3、关于key基本操作指令(五种数据类型都适用):k-v
1)、查看数据库中key的数量:dbsize
2)、查看数据库中有哪些key:keys [参数]
keys *:查看数据库中所有的key
keys w*d:查看数据库所有以w开头,以d结尾的key。
keys w?d:查看数据中所有w开头,d结尾,中间有任何一个字符的key。
keys wo[abc]d:查看数据中所有wo开头,d结尾,中间有任何一个字符(只能从abc选)的key。
3)、判断指定的key在数据库是否存在:exists key key key.....
exists word
exists word k1 k2 k3...//一次性判断多个key,他的返回值是存在几个key
4)、移动key到指定的数据库实例:move key db
move word 1:把word移动到编号是1的数据库实例中。
5)、查看key的剩余生存时间:ttl(time to live) key
|->-1:key没有设置最大生存时间,key永远不会自动删除。
|->n:key最大能生存n秒
|->-2:key不存在
6)、设置key的最大生存时间:expire key seconds(这个方法好像只能对已经创建好的键设置)
expire k1 20
7)、查看key的数据类型:type key
type k1
8)、修改key的名字:rename key newKey
rename k1 kk1 //将k1修改成kk1
9)、删除key:del key key .....
del kk1 k2 //一次性删除多个key
4、关于字符串类型数据的操作命令:k-v
1)、将字符串设置到key中:set k v
set k1 v1
*如果k1已经存在,则后方的value会把原来的value覆盖。
2)、获取key中的数据:get key
get k1
get count
get flag
3)、往字符串值中追加字符串:append key value
append k1 abc
4)、求字符串长度:strlen key
strlen k1
5)、将字符串key中的值做加1运算:incr key
|->要求key中的字符串只能是数字,否则,报错。
incr count
incr k1---报错
6)、将字符串key中的值做减1运算:decr key
|->要求key中的字符串只能是数字,否则,报错。
decr count
decr k1--报错
7)、将字符串key中的值做加一个数运算:incrby key offset(只能做整数加减)
|->要求key中的字符串只能是数字,否则,报错。
incrby count 5
incrby k1--报错
8)、将字符串key中的值做减一个数运算:decrby key offset
|->要求key中的字符串只能是数字,否则,报错。
decrby count 5
decrby k1--报错
9)、截取字符串中从下标为startIndex字符开始到下标为endIndex的字符结束:getrange key startIndex endIndex
下标都是从0开始计算,下标也可以是负数,表示从后往前计算,比如:-1表示最后一个字符的下标。
v1abc
getrange k1 1 3==>1ab
getrange k1 1 -1 ===>1abc
getrange k1 1 -2 ===>1ab
10)、使用value覆盖字符串key,从下标为startIndex字符开始覆盖,指导覆盖完毕:setrange key startIndex value
v1abc
setrange k1 2 xx==>v1xxc (注意此时我们的下标不能以-1表示最后一个)
11)、设置key的同时,指定最大生存时间:setex key seconds value
setex k2 20 zhangSan
12)、往key中设置字符串,只有当key不存在时才设置,如果key已经存在,则不设置:setnx key value
setnx k1 vvvv1
13)、批量设置key-value字符串:mset key vlaue [key value key value .....]
mset k2 v2 k3 v3 k4 v4 k5 v5
14)、批量获取字符串:mget key [key key key ....]
mget k1 k2 k3 k4 k5 count
15)、批量往key中设置字符串,只有当所有的key不存在时才设置,如果有一个key已经存在,则全部设置失败:msetnx key value [key value ....]
msetnx aa bb cc dd k1 vvvv1
5、关于列表(list)操作命令:一个key有多个值(元素),有序可重复,左侧是表头右侧是表尾。
1)、将一个或者多个值插入到表头:lpush key value [value value .....]
5 4 3 2 1
lpush list01 1
lpush list01 2
lpush list01 3 4 5
2)、将一个或者多个值插入到表尾:rpush key value [value value .....]
1 2 3 4 5
rpush list02 1
rpush list02 2 3 4 5
3)、获取列表的元素:lrange key startIndex endIndex
下标都是从0开始计算,下标也可以是负数,表示从尾往前计算,比如:-1表示最后一个元素的下标。
5 4 3 2 1
lrange list01 1 3===>432
lrange list01 0 -1
4)、从表头中移除元素:lpop key
lpop list01
5)、求列表长度:llen key
llen list01
6)、截取列表中指定下表区间的元素组成的子列表,并且赋值给key:ltrim key startIndex endIndex
4 3 2 1
ltrim list01 1 2===>3 2
7)、将列表中的指定元素替换成某一个值:lset key index value
lset list01 1 5
8)、往列表中值为pivot的元素的前边/后边插入value:linsert key before/after pivot value
linsert list01 before 5 4
linsert list01 after 4 6