Redis常用命令
keys * 匹配键所有的键. 模糊匹配 keys * 取出所有已开头的键
exists 判断是否键 exists name判断是否有name这个键是否存在
del 删除键 del name 删除name的键
expire 设置过期时间 expire key time
ttl key 查看键的过期时间
select database 选择数据库
move key dababase1 讲key移动dao database1中的数据库中
persist 取消键的过期时间
randomkey 随机返回一个键的值
rename 重命名一个键
type key 判断key的数据类型
ping ping我们的主机能否链接 链接是否存活
echo 命令 echo demo直接输出
select 选择数据库 select 0-16个数据库
quit exit 退出链接
dbsize 返回数据库的键的个数
info 返回服务器相关信息
config get 返回服务配置信息
flush db 清空数据库
flushall 删除所有数据库中所有的键
1.String类型
set name link
get name
setnx name link 设置name键值为link 如果存在,则返回0 不存在返回1
mset name link age 23 设置多个键值对,全成功,全失败
msetnx name link age 23 sex F 如果设置多个键值对中有一个存在就返回失败
mget name age 获取多个键的值
getset name link 获取name的值,并设置新的值为link
setrange name 3 lll 从key为name 的第三个字符后都替换
getrange name 3 6 获取key为name的3~6的值
append name 给键nane追加lll
incr age 设置每个值自增1 返回结果为24
incrby age 6 给name加6
strlen 返回键对应的值得字符长度
2.Hash 存对象
hset user:001 name link 设置或更新001的name 设置为 link
hsetnx user:001 name link 设置表名字中的name ,若存在,设置不成功
hget user:001 name 获取001的name的值
hmset user:001 name link age 23 设置001多个值
hmget user:001 name age 获取001的多个值
hincrby user:001 age 3 给001的age值加上3
hexists user:001 name 判断是否存在name的key
hlen user:001 返回001所有的字段的数目
hkeys user:001 返回001的所有字段
hvals user:001 返回001中所有的值
hgetall user:001 返回001所有的字段和值
hdel user:001 name 对001的name的值和键删除
3.list 链表 (双向链表)
做为栈:先进后出 昨晚队列:先进先出
lpush list1 “world” 从头压入
rpush list2 “world” 从尾部压入
lrange list2 0 -1 全部取出
linsert list3 before lll love 在lll前插入
linsert list3 after lll love 在lll后插入
lset list5 0 “deom” 替换某个位置的元素
lrem list6 1 “link” 删除list6 中为link的值
ltrim list7 1 2 (删除1,2之外的元素)
lpop list8 从链表的头部弹出一个元素
rpop list8 从链表的尾部弹出一个元素
rpoplpush demo1 demo2 从一个链表弹出,在从头部压入到另一个链表
lindex list11 0 返回一个list下标的索引值
llen返回这个链表的元素的长度
4.set无序集合
sadd set1 link 向集合中插入一条数据
srem set1 link 删除集合中的一个元素
smembers set1 查看集合中的元素
spop 从集合随机弹出一个元素
sdiff s1 s2 两个集合的差集,根据第一个集合为标准
sdiffstore setdemo1 setdemo2 setdemo3
将setdemo1 setdemo2 的差集放到 setdemo3中
sinter 将两个集合的交集
sinterstore 将两个集合的交集存储到另外一个集合中
sunion 将两个集合并集
sunionstore 将两个集合并集并存储到另外一个集合中
smove setA two setB 集合中的two元素移动到setB中
scard set1查看set1元素的个数
sismember set3 link 判断link是否是set3中的元素
srandmember set4 随机取出set4 中的元素
5.zset有序集合
zadd 添加到有序集合中区
zadd zsent 1 link1
zadd zsent 2 link2
zadd zsent 3 link3
zadd zsent 4 link4
zrange zsent 0 -1 withscores 按 score 值递增(从小到大)来排序
zrem 删除有序集合中的元素
zrem zsent link 删除zsent集合中的link
zincrby zsent link 3 将zsent link的序号更改为3,如果没有,就创建
zrank 获取排名,按 score 值递增排序
zrevrank 获取排名,按 score 值递减(从大到小)排序
zrangebyscore 返回集合中指定的元素
zrangebyscore setdeom 2 5 withscores 返回setdemo中2-5中的元素
zcount 返回指定空间的数量
zcount set 2 4 返回2~4中的元素个数
zcard 判断是否存在
zremrangbyrank 删除集合中指定区间的元素,并排序
zremrangbyscore 删除集合中指定元素,并排序
Redis 高级应用
redis.conf
在配置文件里面修改密码 requirepass password
auth对密码进行授权登入或在登陆时后面加上–a yourpass
主从复制:
one: 一个master服务器可以拥有多个slave
two: 一个salve可以有多个master 并且还可以与其他的salve相连接配置salve
打开salveof注释 并添加主机的ip以及端口
主机加了密码的时候还需要配置masterauth 密码
redis 的事务处理
输入:multi 打开一个上下文
Set age 10
Set age 144
上面的全部放入队列最后执行,最后age为144
回滚Discard
Redis的持久化
方式一: snapshotting (快照)将内存的数据写入到文件中 save 500 32
500秒内有32个键发 生变化则发起快照到文件中
方式二: append only file 将每次写修改的命令保存到文件中
配置:打开append only
Appendfsync yes
Appendfsync always 每次都写入
Appendfsync everysec 每一秒写入
Appendfsync no 不写入
=====================================================================================
发布和订阅消息
订阅:
Subscribe tv1 tv2 订阅了两个频道
发布:
Publish tv1 link
注:publish tv1的信息 订阅的信息都可以收到
虚拟内存相关
方式一:暂时把不使用的数据放到硬盘里面
方式二:可以把数据分割到其他的slave数据服务器中
Redis常用数据结构和操作
猜你喜欢
转载自blog.csdn.net/lin252552/article/details/81356684
今日推荐
周排行