1.Redis数据库个数
在redis.conf配置文件里面可以看到。在使用redis数据库里面,通过使用命令:select+id(0-15)选择数据库。默认是0库
2.常用命令
redis对字母大小写敏感
select+id(0-15)#选择数据库
DBSIZE #查询当前数据库的大小
get +key #获取key对应的value值 注意:是在当前数据库中的key-value
keys * #查看当前数据所有的key值
flushdb #当前清空数据库
FLUSHALL #清空所有数据库 的内容
3.Redis知识
Redis是单线程的,是基于内存操作的,CPU不是redis瓶颈,瓶颈根据机器内存和网络带宽限制,既然可以单线程,那我们就单线程就可以,化繁为简!!!
3.1.为什么单线程那么快
误区:
1.高性能的服务器一定是多线程
2.多线程一定比单线程高(看cpu,内存性能才可以,因为里面涉及到一些上下文切换的问题)
redis是C写的,基于内存, 单线程的,单线程意味着没有上下文切换,对内存系统来说,效率高。
3.2为什么Redis选择端口为6379?
粉丝效应 为什么Redis选择6379作为默认端口号?_嘿丶单炒饭的博客-_6379
4.Redis五种数据类型
4.1.key
key * #查看当前数据所有的key值
set key value #设置key的value值
get key #获取key的value值
EXISTS + key #判断key值存不存在
move key 1 #表示当前数据库移除
EXPIRE key time(秒) #表示设置过期时间
ttl key #查询数据生存时间
type key #查询key的类型
clear #清屏
4.2string类型
set key value #设置key的value值
get key #获取key的value值
APPEND key value1 #表示在key对应的value后面追加value1的值。如果key不存在,会创建key
STRLEN key #key对应value的长度
incr key #对key进行++操作
decr key #对key进行--操作
INCRBY key num#对key对应的value进行步长相加
DECRBY key num#对key对应的value进行步长相减
GETRANGE key 0 3 #表示截取 下标为0到下标为3的4个字符
GETRANGE key 0 -1 #表示get一个效果
SETRANGE key 1 vaule #表示将下标为1开始的数据,依次使用value进行填充
4.3list
所有list命令都是l开头
#往list链表里面存储值
LPUSH list one
LPUSH list two
LPUSH list three
#往list链表里面存储值 拿数据是倒着拿(和存储顺序相反)
LRANGE list 0 -1
LRANGE list two
LRANGE list three
5.redis锁
5.1.悲观锁 乐观锁
乐观锁:指的是在操作数据的时候非常乐观,乐观地认为别人不会同时修改数据,因此乐观锁默认是不会上锁的,只有在执行更新的时候才会去判断在此期间别人是否修改了数据,如果别人修改了数据则放弃操作,否则执行操作。
悲观锁:指的是在操作数据的时候比较悲观,悲观地认为别人一定会同时修改数据,因此悲观锁在操作数据时是直接把数据上锁,直到操作完成之后才会释放锁,在上锁期间其他人不能操作数据。
乐观锁与悲观锁的区别_阿彬在努力的博客-乐观锁和悲观锁的区别
5.2watch机制
watch可以当乐观锁,watch去监视key,观察key变换,如果变了,就让事务执行失败