Redis学习记录

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中更改

  1. 打开配置文件把下面对应的注释掉

** #bind 127.0.0.1**

  1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no

** daemonize no**

  1. 保护模式

** protected-mode no**

4) 将之前启动的redis进程杀死 kill -9 进程号

也可2}’ | xargs kill -9

5)更改配置文件后启动redis要带上配置文件一起启动

** ./redis-server redis.conf**

  1. 后台启动

** ./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

你可能感兴趣的:(Redis学习记录)