一、redis的环境配置
1.docker 下载redis
// 查找可下载的redis版本
docker search redis
// 拉取redis镜像
docker pull redis
// 启动redis 端口6378
docker run -p 6378:6378 -v /root/dockerclass/redis/data:/data -v /root/dockerclass/redis/conf/redis.conf:/usr/loedis.conf -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
// 进入redis容器
docker exec -it [容器id] redis-cli
2.服务器端常用命令
> 127.0.0.1:6379> ping
PONG
> 127.0.0.1:6379> echo hello
"hello"
> 127.0.0.1:6379> dbsize
(integer) 0
> 127.0.0.1:6379> select 1
OK
> 127.0.0.1:6379[1]> flushdb
OK
> 127.0.0.1:6379[1]> flushall
OK
> 127.0.0.1:6379[1]> info
# Server
redis_version:6.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:1527eab61b27d3bf
redis_mode:standalone
> 127.0.0.1:6379[1]> quit
[root@dev workspace]#
3.redis支持的数据类型
redis存储的数据类型是一个key对应一个或多个value。value值分为五种Strings、Lists、Sets、Sorted sets、Hash。
string类型是二进制安全的。意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
// key不存在就赋值,存在就不操作
> 127.0.0.1:6379> setnx acca hello
(integer) 1
127.0.0.1:6379> setnx acca hi
(integer) 0
127.0.0.1:6379> get acca
"hello"
// 返回key值的长度
> 127.0.0.1:6379> strlen acca
(integer) 5
// 字符串替换
> 127.0.0.1:6379> setrange acca 0 2
(integer) 5
// 获取指定位置字符串
> 127.0.0.1:6379> getrange acca 0 5
"2ello"
// 同时设置多个key value
> 127.0.0.1:6379> mset acca1 hellow1 acca2 hellow2 acca3 hellow3
OK
// 同时获取多个key的值
> 127.0.0.1:6379> mget acca1 acca2 acca3
1) "hellow1"
2) "hellow2"
3) "hellow3"
// key不存在同时设置多个key value,否则不设置
> 127.0.0.1:6379> msetnx acca3 hellow4 acca4 hellow4
(integer) 0
// 对key的值做加加操作,并返回新的值。注意incr一个不是int的value会返回错误,incr一个不存在的key,则设置key为1
> 127.0.0.1:6379> set age 20
OK
> 127.0.0.1:6379> incr age
21
> 127.0.0.1:6379> get age
"21"
> 127.0.0.1:6379>
// 同incr类似,加指定值 ,key不存在时候会设置key,并认为原来的value是 0
> 127.0.0.1:6379> get age
"21"
> 127.0.0.1:6379> incrby age 5
(integer) 26
> 127.0.0.1:6379> get name
"HongWan@gmail.com"
> 127.0.0.1:6379> get age
"26"
// 对key的值做的是减减操作,decr一个不存在key,则设置key为-1
> 127.0.0.1:6379> get age
"26"
> 127.0.0.1:6379> decr age
(integer) 25
> 127.0.0.1:6379> get age
"25"
// 同decr,减指定值。
> 127.0.0.1:6379> get age
"25"
> 127.0.0.1:6379> decrby age 5
(integer) 20
> 127.0.0.1:6379> get age
"20"
// decrby完全是为了可读性,我们完全可以通过incrby一个负值来实现同样效果,反之一样。
> 127.0.0.1:6379> get age
"20"
> 127.0.0.1:6379> incrby age -5
(integer) 15
> 127.0.0.1:6379> get age
"15"
// 给指定key的字符串值追加value,返回新字符串值的长度。
// 例如我们向name的值追加一个@126.com字符串,那么可以这样做:
> 127.0.0.1:6379> append name @126.com
(integer) 15
> 127.0.0.1:6379> get name
"HongWan@126.com"
> 127.0.0.1:6379>
// 取指定key的value值的长度。
> 127.0.0.1:6379> get name
"HongWan_new"
> 127.0.0.1:6379> strlen name
(integer) 11
> 127.0.0.1:6379> get age
"15"
> 127.0.0.1:6379> strlen age
(integer) 2
> 127.0.0.1:6379>
同时推荐这个博客,写的很详细。