成都知名网站推广,wordpress 仿煎蛋,杭州科技公司网站建设,免费视频app交友软件哪个好文章目录 redis数据类型string#xff08;字符串#xff09;1. 设置键值2. 设置键值的过期时间3. 关于设置保存数据的有效期4. 设置多个键值5. 字符串拼接值6. 根据键获取值7. 自增自减8. 获取字符串的长度9. 比特流操作 redis数据类型
redis可以理解成一个全局的大字典字符串1. 设置键值2. 设置键值的过期时间3. 关于设置保存数据的有效期4. 设置多个键值5. 字符串拼接值6. 根据键获取值7. 自增自减8. 获取字符串的长度9. 比特流操作 redis数据类型
redis可以理解成一个全局的大字典key就是数据的唯一标识符。根据key对应的值不同可以划分成5个基本数据类型。redis {name:yuan,scors:[100,89,78],info:{name:rainage:22},s:{item1,itme2,..}
}1. string类型:字符串类型是 Redis 中最为基础的数据存储类型它在 Redis 中是二进制安全的也就是byte类型。单个数据的最大容量是512M。key: 值2. hash类型:哈希类型用于存储对象/字典对象/字典的结构为键值对。key、域、值的类型都为string。域在同一个hash中是唯一的。key:{域属性: 值域:值 域:值域:值...}
3. list类型:列表类型它的子成员类型为string。key: [值1值2, 值3.....]
4. set类型:无序集合它的子成员类型为string类型元素唯一不重复没有修改操作。key: {值1, 值4, 值3, ...., 值5}5. zset类型(sortedSet):有序集合它的子成员值的类型为string类型元素唯一不重复没有修改操作。权重值(score,分数)从小到大排列。key: {值1 权重值1(数字);值2 权重值2;值3 权重值3;值4 权重值4;}
string字符串 SET/SETEX/MSET/MSETNXGET/MGETGETSETINCR/DECRDEL 1. 设置键值
set 设置的数据没有额外操作时是不会过期的。
set key value设置键为name值为yuan的数据
set name yuan
set name rain # 一个变量可以设置多次127.0.0.1:6379set name yuan
OK
127.0.0.1:6379get name
yuan
127.0.0.1:6379注意redis中的所有数据操作如果设置的键不存在则为添加如果设置的键已经存在则修改。
设置一个键当键不存在时才能设置成功用于一个变量只能被设置一次的情况。
setnx key value一般用于给数据加锁(分布式锁)
127.0.0.1:6379 setnx goods_1 101
(integer) 1
127.0.0.1:6379 setnx goods_1 102
(integer) 0 # 表示设置不成功127.0.0.1:6379 del goods_1
(integer) 1
127.0.0.1:6379 setnx goods_1 102
(integer) 12. 设置键值的过期时间
redis中可以对一切的数据进行设置有效期。以秒为单位
setex key seconds value设置键为goods_1值为101过期时间为10秒的数据
setex name goods_1 103. 关于设置保存数据的有效期
setex 添加保存数据到redis同时设置有效期格式
setex key time value127.0.0.1:6379setex name 5 rain
OK
127.0.0.1:6379get name
rain
127.0.0.1:6379get name
(nil)4. 设置多个键值
mset key1 value1 key2 value2 ...例3设置键为a1值为goland、键为a2值为java、键为a3值为c
mset a1 goland a2 java a3 c5. 字符串拼接值
常见于大文件上传
append key value向键为a1中拼接值haha
set title 我的
append title redis
append title 学习之路6. 根据键获取值
根据键获取值如果不存在此键则返回nil
get key获取键name的值
get name根据多个键获取多个值
mget key1 key2 ...获取键a1、a2、a3的值
mget a1 a2 a3getset设置key的新值返回旧值
redis GETSET db mongodb # 没有旧值返回 nil
(nil)
redis GET db
mongodbredis GETSET db redis # 返回旧值 mongodb
mongodbredis GET db
redis7. 自增自减
web开发中的电商抢购、秒杀。游戏里面的投票、攻击计数。系统中计算当前在线人数、
set id 1
incr id # 相当于id1
get id # 2
incr id # 相当于id1
get id # 3set goods_id_1 10
decr goods_id_1 # 相当于 id-1
get goods_id_1 # 9
decr goods_id_1 # 相当于id-1
get goods_id_1 # 8set age 22incrby age 2 # 自增自减大于1的值时候用incrby8. 获取字符串的长度
set name xiaoming
strlen name # 8 9. 比特流操作
————————
mykey 00000011
1字节8比特 1kb 1024字节 1mb 1024kb 1gb 1024mb
1个int8就是一个字节一个中文3个字节
SETBIT # SETBIT key offset value 按从左到右的偏移量设置一个bit数据的值
GETBIT # 获取一个bit数据的值
BITCOUNT # 统计字符串被设置为1的bit数.
BITPOS # 返回字符串里面第一个被设置为1或者0的bit位。案例1
SETBIT mykey 7 1
# 00000001
getbit mykey 7
# 00000001
SETBIT mykey 4 1
# 00001001
SETBIT mykey 15 1
# 0000100100000001我们知道 ‘a’ 的ASCII码是 97。转换为二进制是01100001。offset的学名叫做“偏移” 。二进制中的每一位就是offset值啦比如在这里 offset 0 等于 ‘0’ offset 1等于 ‘1’ ,offset 2 等于 ‘1’,offset 6 等于 ‘0’ 没错offset是从左往右计数的也就是从高位往低位。
我们通过SETBIT 命令将 andy中的 ‘a’ 变成 ‘b’ 应该怎么变呢
也就是将 01100001 变成 01100010 b的ASCII码是98这个很简单啦也就是将’a’中的offset 6从0变成1将offset 7 从1变成0 。
案例2签到系统
setbit user_1 6 1
setbit user_1 5 1
setbit user_1 4 0
setbit user_1 3 1
setbit user_1 2 0
setbit user_1 1 1
setbit user_1 0 1
BITCOUNT user_1 # 统计一周的打卡情况