Redis简介
redis官网 https://redis.io/
redis中国官网 http://redis.cn
提供了Java,C/C++,C#,PHP,JavaScript,Pert,Object-C,Python,Ruby,Erlang等客户端
从2010年3月15日起,Redis的开发工作由VMware主持
从2013年5月开始,redis的开发由Pivotal赞助
Redis常用的数据类型:
数据类型(type):
String ,hash(Hash表), list, set(无序集合), sorted set(有序集合)**
编码方式(encoding):
raw, int, ht, zipmap, linkedlist, ziplist, intset**
数据指针(ptr)
虚拟内存(vm)
其它信息
Redis开发语言客户端介绍:
https://redis.io/clients
http://redis.cn/clients.html
课程Redis版本(Linux):
redis-2.8.0.tar.gz
http://download.redis.io/releases/
课程Redis版本(Windows)
Redis-x64-2.8.2402
Microsoft Open Tech group
https://github.com/MicrosoftArchive/redis
redis.conf配置文件
port端口 默认6379
开放端口
/sbin/iptables -I INPUT -p tcp --dport 6379 -j AUUEPT
requirepass密码
masterauth主从同步中在slave配置master的密码
redis单例服务端启动
redis-server
redis-server${redis.conf}
redis-server --port${port}
redis单实例客户端的启动
redis-cli
redis-cli -p ${port}
redis-cli -h ${ip}
redis-cli -a ${password}
redis-cli -p {ip} -a ${password}
redis单实例服务端及客户端关闭
redis-cli shutdown
redis-cli -p ${port} shutdown
redis-cli -h ${ip} shutdown
redis-cli -p {ip} shutdown
redis单实例环境验证
ping
执行redis set命令相关
查看redis get命令获取到的值
redis基础命令
info
ping
quit
save
dbsize
select
flushdb
flushall
redis键命令
set 设置
del 删除
exists 是否存在
expire 到期
ttl
type
randomkey
……
Redis五种数据结构Redis命令快速上手
string(字符串)
list(链表)
set(无序集合)
sorted set(有序集合)
hash(Hash表)
查看centos版本信息:
** lsb_release -a**
[图片上传失败...(image-a49ca5-1583982657584)]
在${redis}/redis.conf中更改
- 打开配置文件把下面对应的注释掉
** #bind 127.0.0.1**
- Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no
** daemonize no**
- 保护模式
** protected-mode no**
4) 将之前启动的redis进程杀死 kill -9 进程号
也可2}’ | xargs kill -9
5)更改配置文件后启动redis要带上配置文件一起启动
** ./redis-server redis.conf**
- 后台启动
** ./redis-server &**
telnet测试:
telnet 192.168.164.164 6379
Windows 中Redis相关命令
** redis-cli shutdown**
** redis-cli -p 6380 shutdown **
** redis-cli -p 6380 -h 127.0.0.1**
Redis 命令:
select 1:选择第1号数据库
set 1 a :添加一条数据key 是1 value是a
get 1 :根据key取值
keys * :显示当前数据库数据信息
info:显示所有数据库相关配置信息
flushdb:清除当前数据库信息
flushall:清所有前数据库信息 Keyspace为空
dbsize: 显示数据条数
save :人工持久化
quit: 退出
键命令:
del test :删除键 返回值是1
del xxx: 删除不存在的 返回值是0
clean: 清除命令
exists a:判断key a是否存在 返回值是1
exists x:判断key x是否存在 返回值是0
ttl a: 看这个key剩余生存时间
expire a 10 : 设置a的过期时间是10秒
type b :返回key类型
randomkey:随机key
rename a d : 将key a 换成 key b 覆盖已存在不去校验
renamenx a m:将key a换成key m,先进行校验
setex c 100 c: 设置一个key c 过期时间是100秒
set word hello_word
getrange word 0 2 :提取word 0到2个元素hel
getset a aa:更改key的值为新值aa
mset ka va kb vb kc vc:同时设置多个kv
mget ka kb kc :同时获取多个v值
get a -> ”aa”
setnx a newavalue->()0:因为key a本来就存在所以返回为0
set和setnx区别是前者没有判断,后者有判断
set word hello_word
strlen word->10:字符串长度
msetnx q q w w->()1:
msetnx q q uuu uuu->()0:q已存在后面的uuu即使不存在也不成功
msetnx:具有事务的原子性
set 1 1
get 1 ->1
incr 1 -> ()2: 使v加1,前提是数据类型是int型
incr 1 ->()3:
get 1 -> ”3”
incrby 1 100-()103:步长是1 增量是100
decr 1 :减去1
decrby 1 100 :一次减100
append 1 appendstr: 拼接字符串
get 1 -> ”1appendstr”
hset map name jim ->()1
type map ->hash:查看返回类型是hash
hexists map name ->()1:验证map是否存在
hget map name -> ” jim ” :拿到name的值
hgetall map : 获得所有的KV
hkeys map : 获取所有key
hvals map :获取所有的value
hlen map :map长度
lpush list 1 2 3 4 5 6 7:创建list:7 6 5 4 3 2 1
llen list :查看list长度
lrange list 0 2: 取出list的第0 1 2 个元素
lset list 0 100: 更改list第一个元素是100
lindex list 5 : 根据索引获取第5个元素
lpop list: 移除第一个元素
rlpop list: 移除最后一个元素
sadd set a b c d :创建集合
sadd set a ->()0:原因是set不能有重复元素
scard set :返回set集合元素的数量
rename set set1:更改集合名字
smembers set1 :查看元素成员
sdiff set1 set2:求两个集合的差集
sinter set1 set2:求两个集合的交集
sunion set1 set2:求两个集合的并集
srandmember set1 2:返回set1 两个随机元素
sismember set1 a:验证a是否是成员元素
srem set1 a b :移除 a b 两个元素
spop set2 : 移除一个元素后再返回这个集合
Zset(有序集合)
zadd sortedset1 100 a 200 b 300 c
zcard sortedset :
zscore sortedset a: 根据分数排序
zcount sortedset 0 200 :
zrank sortedset a: 排序
zincrby sortedset 100 a: 给a 加1000分
zrange sortedset 0 100 withscores