Redis全系列

Posted 飞特族

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis全系列相关的知识,希望对你有一定的参考价值。

Redis全系列(一)

1. 启动服务端
. edis-server.exe + 配置文件(建议使用) 
例:. edis-server.exe . edis.6379.conf
. edis-server.exe --port 端口
例:. edis-server.exe --port 6379

2. 启动客户端
. edis-cli.exe -h ip地址 -p 端口 -a 密码

3. 关闭服务
连接客户端后执行命令 shutdown

4. 获取配置
config get *   --下列是默认配置,奇数为键,偶数为值
1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "unixsocket" 8) "" 9) "logfile" 10) "" 11) "pidfile" 12) "/var/run/redis.pid" 13) "maxmemory" 14) "0" 15) "maxmemory-samples" 16) "5" 17) "timeout" 18) "0" 19) "tcp-keepalive" 20) "0" 21) "auto-aof-rewrite-percentage" 22) "100" 23) "auto-aof-rewrite-min-size" 24) "67108864" 25) "hash-max-ziplist-entries" 26) "512" 27) "hash-max-ziplist-value" 28) "64" 29) "list-max-ziplist-entries" 30) "512" 31) "list-max-ziplist-value" 32) "64" 33) "set-max-intset-entries" 34) "512" 35) "zset-max-ziplist-entries" 36) "128" 37) "zset-max-ziplist-value" 38) "64" 39) "hll-sparse-max-bytes" 40) "3000" 41) "lua-time-limit" 42) "5000" 43) "slowlog-log-slower-than" 44) "1000" 45) "latency-monitor-threshold" 46) "0" 47) "slowlog-max-len" 48) "128" 49) "port" 50) "6379" 51) "tcp-backlog" 52) "511" 53) "databases" 54) "16" 55) "repl-ping-slave-period" 56) "10" 57) "repl-timeout" 58) "60" 59) "repl-backlog-size" 60) "1048576" 61) "repl-backlog-ttl" 62) "3600" 63) "maxclients" 64) "10000" 65) "watchdog-period" 66) "0" 67) "slave-priority" 68) "100" 69) "min-slaves-to-write" 70) "0" 71) "min-slaves-max-lag" 72) "10" 73) "hz" 74) "10" 75) "cluster-node-timeout" 76) "15000" 77) "cluster-migration-barrier" 78) "1" 79) "cluster-slave-validity-factor" 80) "10" 81) "repl-diskless-sync-delay" 82) "5" 83) "cluster-require-full-coverage" 84) "yes" 85) "no-appendfsync-on-rewrite" 86) "no" 87) "slave-serve-stale-data" 88) "yes" 89) "slave-read-only" 90) "yes" 91) "stop-writes-on-bgsave-error" 92) "yes" 93) "daemonize" 94) "no" 95) "rdbcompression" 96) "yes" 97) "rdbchecksum" 98) "yes" 99) "activerehashing"100) "yes"101) "repl-disable-tcp-nodelay"102) "no"103) "repl-diskless-sync"104) "no"105) "aof-rewrite-incremental-fsync"106) "yes"107) "aof-load-truncated"108) "yes"109) "appendonly"110) "no"111) "dir"112) "D:\Program Files\Redis-x64-3.0.504"113) "maxmemory-policy"114) "noeviction"115) "appendfsync"116) "everysec"117) "save"118) "jd 900 jd 300 jd 60"119) "loglevel"120) "notice"121) "client-output-buffer-limit"122) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"123) "unixsocketperm"124) "0"125) "slaveof"126) ""127) "notify-keyspace-events"128) ""129) "bind"130) ""

5. 设置配置属性
config set 键(上面命令获取的奇数) 值(上面命令获取的奇数下的偶数) 
例:config set requirepass 1
注意 :
如果是设置密码,则要从新登陆,命令 AUTH 新密码 例:AUTH 1
设置完密码如果想要使修改的配置持久化则需要执行 CONFIG REWRITE

6. 全局命令
查询所有主键: keys * (实际生产环境不会使用此命令)
数据个数: dbsize
清理数据: flushdb [清理当前库中的数据]、flushall[清理所有库中的数据]
检查键是否存在: exists key 返回1[存在],0[不存在]
删除主键:del key 返回1[已删除个数],0[没有删除的数据]
设置过期时间: EXPIRE key senconds 返回1[成功],0[失败]
查看剩余过期时间: ttl key 返回-2则没该键
键的数据结构类型: type key 返回正常的类型,没有键则返回none
切换数据库: select 库编号


7. 字符串常用操作
实际上可以是字符串(包括XML JSON),还有数字(整形浮点数),二进制(图片音频视频),最大不能超过512MB
设置值:

set key value –-不管有没有key都设置,

示例:set name lili 返回ok

setnx key value –-不存在key才设置 

示例:setnx name lili 返回0,setnx age 12 返回1

SETEX key seconds value --设置键值及过期时间

示例:setex age 60 90 返回ok

set key value ex seconds --设置键值及过期时间,

示例:set age 90 ex 60 返回ok

mset key1 value1 key2 value2 …… --批量设置key和值

示例 :mset name zhangsan age 16 sex male ,返回ok·

获取值:
get key  --获取值
mget key1 key2  --批量获取值
示例:mget name age sex,没有返回 1) (nil) ,存在返回
“hangsan”
“16”
“male”
查看编码: object encoding key 
返回"int"[^长度小于20的短数字] 、“embstr”[小于等于39个字符]或者"raw"[大于39个字符]
增减:
incr key  --加一 
返回增加后的最新值
incrby key increment  --增加自定的数值 
返回增加后的最新值
decr key  --减一
decrby key increment  --减去自定的数值
INCRBYFLOAT key increment  --浮点数增加
追加:
append key value --在原有的值后追加字符串
返回追加后的字符串长度
字符串长度: STRLEN key


8. Hash常用操作
是一个string 类型的field 和value 的映射表,hash 特适合用于存储对象
设置值:
HSET key field value  –设置hash 值
示例:hset user:1 name zhangsan 返回1
HMSET key field value [field value …]  --批量设置hash值
示例 :hmset user:1 name zhangsan age 12 ,返回ok
获取值:
HGET key field --获取值
HMGET key field [field …]  --批量获取值 
示例:mget name age sex,没有返回 1) (nil) ,存在返回
“zhangsan”
“12”
删除filed:
HDEL key field [field …] , 示例:HDEL user:1 name 返回1
查看编码:
object encoding key  
返回"ziplist"[^压缩列表:当field少且没有大value] 、“hashtable”[^哈希表:value大于64]
增加:
hincrby key field increment  --增加自定的数值 
返回增加后的最新值
HINCRBYFLOAT key field increment  --浮点数增加
长度(有几个field) : HLEN key
是否存在field: hexists key field


9. List常用操作
用来存储多个有序的字符串,一个列表最多可存2 的32 次方减1 个元素
设置值:
LPUSH key value [value …]  --从左向右插入 ,
e.g.:lpush country china england amareican ,返回元素 个数
RPUSH key value [value …]  --从右向左插入
e.g.:RPUSH color red blue green
LINSERT key BEFORE|AFTER pivot value  --插入
e.g.:LINSERT country before china india
获取值:
LINDEX key index  --通过索引获取值
e.g.: LINDEX country 0,返回"amareican"
LRANGE key start stop  --获取值 
e.g.: LRANGE country 0 -1 ,返回:
“amareican”
“england”
“india”
“china”
删除值:
LPOP key  --从左到右删除一个
e.g.:LPOP country,返回"amareican"
RPOP KEY  --从头删除一个
e.g.:RPOP country,返回"china"
LREM key count value  --从头删除几个
e.g.:lrem country 2 india,返回2(里面有两个india)
LTRIM key start stop  --从头保留几个
e.g.: LTRIM country 0 1,返回OK,只保留第1和2个
长度:
llen key --获取元素个数
e.g.:llen country,返回2

修改:

LSET key index value --修改索引处的值为value
e.g.:LSET country 0 england,返回OK


10. Set
保存多元素,与列表不一样的是不允许有重复元素,且集合是无序,一个集合最多
可存2 的32 次方减1 个元素,除了支持增删改查,还支持集合交集、并集、差集;
设值:
SADD key member [member …]–添加集合
e.g.:SADD color red blud green red,返回3
取值:
SMEMBERS key  --取值
e.g.:SMEMBERS color,返回:
“green”
“blud”
“red”
SRANDMEMBER key [count]  --随机返回几个值
e.g.:SRANDMEMBER color 1,随机返回 “blud”
删除:
SREM key member [member …]  --删除
e.g.:SREM color red 返回1;
SPOP key  --随机返回一个成员并删除
e.g.:SPOP color,返回"green";
统计:
SCARD key  --获取集合个数
e.g.:SCARD color,返回2;
判断集合是否存在某值:
SISMEMBER key member --判定给定的值是否存在集合中
e.g.:SISMEMBER color blud ,返回1或者0;
交集:
SINTER key [key …]  --多个集合交集(共有的集合)
e.g.: SINTER color color1,返回red;
SINTERSTORE destination key [key …]  --区交集并存储到目的地
e.g.:SINTERSTORE color_jj color color1,返回1
查询 SMEMBERS color_jj,返回结果和上方结果一致
并集:
SUNION key [key …]  --并集(合起来去重复)
e.g.:SUNION color color1,返回:
“blud”
“red”
“white”
“organ”
“green”
SUNIONSTORE destination key [key …]  --获取并集并存储
e.g.:SUNIONSTORE color_bj color color1
查询SMEMBERS color_bj,返回结果和上方结果一致
差集:

SDIFF key [key …] --差集(集合相互没有)

e.g.: SDIFF color color1

返回:

“green”

“blud”

SDIFFSTORE destination key [key …] --获取差集并存储

e.g.:SDIFFSTORE color_cj color color1,返回2,

查询查询SMEMBERS color_cj,返回结果和上方结果一致



11. sorted_set(有序集合)
常用于排行榜,如视频网站需要对用户上传视频做排行榜,或点赞数
ListSETSORTED_SET区别:
设值:
ZADD key [XX] score member [score member …] --设值值
e.g.:ZADD vote 100 zhangsan 60 lisi 80 wangwu 1 zhaoliu
返回:(integer) 4;
XX: 仅仅更新存在的成员,不添加新成员
NX: 不更新存在的成员。只添加新成员。
INCR: 成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作
CH:修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。更改的元素是新添加的成员,已经存在的成员更新分数。所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。
取值:
ZSCORE key member --获取成员的分数e.g.:ZSCORE vote zhangsan,返回:“3”
ZREVRANGE key start stop [WITHSCORES] --倒叙返回成员【带分数】e.g.:ZREVRANGE vote 0 -1 withscores,返回:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] --查询给定范围的成员,+inf标识无限大,-inf标识无限小e.g.: ZRANGEBYSCORE vote 1 80 withscores,返回:
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] --反向
ZRANGE key start stop [WITHSCORES] --返回成员【带分数的】e.g.:zrange vote 0 -1 withscores,返回“zhaoliu”“1”“lisi”“60”“wangwu”“80“zhangsan”“100”“zhangsan2”“100”“wangwu”“80”“lisi”“60”“zhaoliu”“1”“zhaoliu”“1”“zhangsan”“3”“lisi”“60”“wangwu”“80”“zhangsan2”“100”“zhangsan”“100”

获取成员数:


ZCARD key --获取成员数

e.g.:ZCARD vote,返回:(integer) 6;

ZCOUNT key min max --统计给定范围的成员数

e.g.: zcount vote 1 60,返回(integer) 2;


排名:


ZRANK key member --查看成员的名次(从0开始计算),从小到大

e.g.:ZRANK vote zhangsan, 返回:(integer) 1;

ZREVRANK key member --反向返回名次,从大到小

e.g.:ZREVRANK vote zhangsan,返回(integer) 4;


删除:


ZREM key member [member …] --删除成员

e.g.: ZREM vote zhangsan,返回(integer) 1;

ZREMRANGEBYRANK key start stop --按照顺序删除指定范围的

eg:ZREMRANGEBYRANK vote 0 0,返回(integer) 1

ZREMRANGEBYSCORE key min max --删除给定分数范围的成员

e.g.: ZREMRANGEBYSCORE vote 0 60,返回(integer) 1

交集:

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] --求交集,默认是分数相加
eg::ZINTERSTORE votenew 2 vote vote1 weights 2 4 aggregate max;返回(integer) 3

并集:

ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] --求并集,
eg.与交集用法一致;

屯干货 | 享信息 | 聊生活

以上是关于Redis全系列的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

最全最详细publiccms其他常用代码片段(内容站点)

如何利用redis来进行分布式集群系统的限流设计

jedis连接redis

Redis 6.0 系列 | TLS源码分析

VSCode插件开发全攻略代码片段设置自定义欢迎页