1. Redis是内存数据库,支持数据持久化,当服务重启之后,可以再将数据reload进内存中。
2. Redis服务启动后,对外提供服务的端口号为6379
3. 如果执行的是 ./redi-cli,那么自动连接本机的redis服务
4. 如果想要redis服务后台启动: ./redis-server &
5. 关闭redis服务 kill -9 PID
6. Redis多种启动方式
1. 如果redis客户端set了一个key-value,然后服务端强行关闭服务(ctrl+c),此时数据没有持久化到磁盘中,如果服务端是shutdown命令关闭服务,那么可以将之持久化磁盘中。客户端也可以用 save命令自行持久化到磁盘中。
2. 正确关闭服务的做法是客户端执行 ./redis-cli shutdown,先持久化,然后再关闭服务
3. 默认启动与关闭的方法便如上所述:
4. Redis服务默认是6379,自定义端口6380启动服务为 ./redis-server --port 6380.此时客户端再想连接,必须用: ./redis-cli -p 6380.退出时,同样也要指定端口,./redis-cli -p 6380 shutdown
5. 也可以采用修改配置文件的方法来启动服务,修改redis.conf文件中端口号,然后指定配置文件启动服务: ./redis-server ../redis.conf
7. 客户端连接时可以指定ip地址进行本地或者远程连接:
./redis-cli -p 6379 -h 128.***.**.** 。客户端关闭时同样要指定ip:
./redis-cli -p 6380 -h 128.***.**.** shutdown
8. 密码: 修改配置文件的方法来设置密码,搜索redis.conf文件中 requiredpass ,然后 改为 requiredpass password.此时用配置文件启动服务,然后客户端连接时,用 ./redis-cli -p 6379 -h ip -a password,如果密码错了或者不加密码,那么ping后会提示无权限。
9. Redis基础命令
info: 查看相关信息,注意keyspace
flushdb:清除当前keyspace的key
flushall:清除所有的keyspace以及key
ping:测试是否连通
dbsize: 当前keyspace的key数量
save:人工持久化数据到磁盘中
quit:退出
clear
10. Redis的键命令
set key value
del key
keys *
exists key
ttl key: key的剩余生存时间,单位为秒,当为-1时,说明该key是没有过期时间的,是一个永久的key(不设置expire的话,默认永久),当为 -2时,说明 该key不存在或已经过期
expire key 10: 为key设置过期时间,10s,设置session的有效期
type key :返回该key的类型
randomkey :随机返回某key
rename a d ; 将 key a 命名为d,如果已经存在 key d, 那么将直接覆盖 d,value还是原key a 的
renamenx:以nx结尾的命令,都包含判断的逻辑
renamenx a b:如果key中包含b,那么将返回0,说明操作失败,如果key中不包含b,那么返回1,说明操作成功。
11. Redis数据结构: String字符串
设置key的同时设置有效期(以秒为单位): setex key 100 value
设置key的同时设置有效期(以ms为单位): psetex key 100 value
getrange key 0 2 :取key所对应value的0-2范围的子串,闭区间
getset key value : 设置新值的同时,返回旧值
mset key1 value1 key2 value2 … :批量设置key-value
mget key1 key2 … :批量获取key所对应的value
nx:nx结尾的命令都包含判断逻辑
setnx key value : 只有欲设置的key不存在时,才会set成功,返回1,如果该key已经存在,不成功,会返回0
msetnx key1 value1 key2 value2:类似于事务,只有都set成功时,才返回1,只要有一个key已经存在,便都不能set成功,返回0
strlen:字符串长度
incr key,使key所对应的value变为value + 1,并返回变化后的value
incrby key 100(自定义步长),使key所对应的value变为value + 100,并返回变化后的value
相应的,也有decr和 decrby
append key appendstr : 类似于java中的append方法,将key所对应的value设置为 value+appendnstr
12. Redis数据结构:哈希 hash
hset key [key value] : hset map name jim
hexists map name : 返回1
hexists map na : 返回0
hget map name : 返回 jim
hget map kkkk : 返回 nil
hset map age 10
hgetall map :
“name”
“jim”
“age”
“18”
hkeys map :
“name”
“age”
hvals map :
“jim”
“18”
hlen map : 2
hmget map name age
hmset map key1 value1 key2 value2
hkeys map
hdel map key1 key2
hsetnx map key newvalue : 同理,看map中key是否存在,决定是否set成功
13. Redis数据结构:列表list
lpush list 1 2 3 4 5 6
llen list :6
lrange list 0 2 : 6 5 4(说明是类似于栈,也可以看做头插法)
lset list 0 100 : 将列表中索引为0元素设置为100
lindex list 0 : 拿到指定索引处的元素:100
lpop list :移除列表中第一个元素:100
rpop list : 移除列表中最后一个元素 :6
14. Redis数据结构:集合set
sadd set a b c d
sadd set a :返回0(说明不可重复)
scard set ; 返回集合元素的数量
rename set set1
sadd set2 c d e f
smembers set1:查看集合中所有的元素(无序)
sdiff set1 set2 :得到两集合的差集,注意前后顺序:b a
sdiff set2 set1 :e f
sinter set1 set2: 得到两集合的交集: c d
sunion set1 set2 : 得到两集合的并集
srandmember set1 2:返回集合中随机2个元素
sismember set1 a: a是不是该集合中的元素,0:不是,1:是
srem set1 a b : 从集合中移除若干元素
spop set2 :移除随机元素并返回
15. Redis数据结构:有序集合 sortedset
zadd sortedset 100 a 200 b 300 c(元素不能重复,分数可以)
zcard sortedset : 3
zscore sortedset a : 100
zcount sortedset 0 220 :统计0分到200分(闭合区间)之间的数量: 2
zrank sortedset a : 返回排序后的索引:0
zrank sortedset b : 返回排序后的索引:1
zincrby sortedset 1000 a : 给a加1000分
zrange sortedset 0 100 : 拿前101个元素
zrange sortedset 0 100 withscores : 拿前101个元素,同时显示分数
Redis基础知识集命令总结
最新推荐文章于 2023-11-23 16:30:48 发布
本文全面总结了Redis的基础知识,包括其常用的数据类型如字符串、哈希、列表、集合和有序集合的操作命令,以及事务、持久化、主从复制等核心特性。通过本文,读者将能对Redis有更深入的理解。
摘要由CSDN通过智能技术生成