redis学习笔记

redis的数据结构
1、字符串
添加字符串 set key value
获取字符串 get key
修改字符串 getset key value2 (原来key的值就会修改成value2。
递增的命令 incr num (num不存在时默认为0,然后执行加1的操作,num结果为1)。
递减的命令 decr num1 (num不存在时默认为0,然后执行减1的操作,num结果为-1)。
加指定数的命令 incrby num2 5(num2不存在时默认为0,然后执行加5的操作,结果为5)。
减指定数的命令 decrby num3 5(num3不存在默认为0,然后执行减5的操作,结果为-5)。
拼接的命令:append num 5(结果为string类型的“15”)。

2、哈希 hash
可以设置多个key,value的数据结构
-hset myhash name aaa
-hset myhash age 18
-hmset myhash2 name bbb age 16(同时设置多个key 、value)
-hget myhash name
“aaa”
-hmget myhash name age
1)“aaa”
2)“18”
-hgetall myhash
1)“name”
2)“aaa”
3)“age”
4)“18”
-hdel myhash name age(删除key)
-del myhash(删除key)
-hincrby myhash age 5(增加5)
-hget myhash age
“23”
-hexists myhash age(判断一个key是否存在,存在返回1,不存在返回0)
hlen myhash (获得key的大小)
hkeys myhash(获得所有的key)
hvalues myhash (获得所有的value)

3、list
按照插入顺序排序的字符串的链表,可以在左侧和右侧进行插入。
-lpush mylist 1 2 3(从左边往mylist中插入数据)
-rpush mylist2 a b c (从右边往mylist2中插入数据)
-lrange mylist1 0 -1(从左边第0个位置到最后一个位置查看数据)
1)“1”
2)“2”
3)“3”
-lpop mylist2(从左边弹出一个数据,弹出后数据就不存在)
“a”
-rpop mylist2(从左边弹出数据)
“c”
-llen mylist2(查询mylist2的长度)
1
-lpushx mylist2 x(从左边插入一个值)
-rpushx mylist2 y(从右边插入一个值)
-lrem mylist2 2 3(从左边删除2个3)
-lset mylist2 3 mmm(从左边数第3个位置插入mmm)
-linsert mylist2 before y h(在y的前面插入h)
-rpoplpush mylist1 mylist2(从mylist1的右侧弹出一个数据插入到mylist2中)该命令可以用来保存还未执行完的数据。

4、set
-sadd myset a b c 添加set的值
-smembers myset 获得集合中的元素
-sismember myset a 判断元素a是否在集合myset中
-sadd mys1 a b c
-sadd mys2 a c 1 2
-sdiff mys1 mys2 求两集合的不同
1)b
-sinter mys1 mys2 获取两个集合的并集
1)a
2)c
-sunion mys1 mys2 获取两个集合的交集
1)a
2)b
3)c
4)1
5)2
-scard myset 获取集合的数量
-srandmember myset 随机返回集合中的一个数
-sdiffstore my1 mys1 mys2 将mys1与mys2的不同值存到my1中
-sinterstore my2 mys1 mys2 将mys1与mys2的值交集存于my2中
sunionstore my3 mys1 mys2 将mys1与mys2的并集存于my3中

5、sorted-set
由分数和值构成,可用于大型游戏的积分排行榜。
集合中的元素是有序排列的。
-zadd mysort 80 a 90 b 100 c 添加集合中的元素
-zscore mysort a 获取某个元素的分数
-zcard mysort 获取集合中元素的个数
-zrem mysort a 删除某个元素
-zrange mysort 0 -1 获取集合mysort的所有元素
-zrange mysort 0 -1 withscore 获取集合mysort的元素和分数
-zrevrange mysort 0 -1 witjscore 获取从大到小的分数排序
-zremrangebyrank mysort 0 4按照范围删除
-zremrangebyscore mysort 80 100 按分数删除,删除在80到100之间分数的值

6、keys的相关命令
-keys * 获取所有的key值
-keys my?模糊查询my*的key值
-del my1 my2 删除key为my1、my2的值
-exists my1 判断key是否存在
-get my3 获取my3的值
-rename my3 newmy3 重命名my3为newmy3
-expire newmy3 1000 设置newmy3的生命周期
-ttl newmy3 查询newmy3的生命周期
-type newmy3 查询key的类型

7、redis的特性
*多数据库:可以有16个数据库,从0~15,用select 1进行切换数据库。
*支持事物:
multi(开启事物)
exec(提交事物)
discard(回滚事物)
8、redis的持久化
*RDB的方式:每隔一段时间进行内存快照,将数据保存到磁盘中。
在redis.conf文件中配置。
优点:只需要一个子程序去进行数据存储
缺点:如果30s快照一次,25s的时候redis宕机了就会造成数据丢失。

*AOF的方式
每秒保存一次
没修改保存一次
不保存
优点:保证了数据的安全性
缺点:损耗的性能要远远大于RDB

*无持久化

*RDB+AOF的方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值