东丽网站建设公司,网站怎么做跟踪链接,公司官网源码下载,苏州官网设计1、五大数据类型
4.1、String#xff08;字符串#xff09; String是Redis最基本的类型#xff0c;你可以理解成与Memcached一模一样的类型#xff0c;一个key对应一个value String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象…1、五大数据类型
4.1、String字符串 String是Redis最基本的类型你可以理解成与Memcached一模一样的类型一个key对应一个value String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象 String类型是Redis最基本的数据类型一个Redis中字符串value最多可以是512M 127.0.0.1:6379 set key1 redis # 设置值
OK
127.0.0.1:6379 get key1 # 获取值
redis
127.0.0.1:6379 APPEND key1 hello # 追加key1的字符串如果当前的key不存在则默认set该key
(integer) 10
127.0.0.1:6379 get key1
redishello
127.0.0.1:6379 STRLEN key1 # 获取当前key的字符串的长度
(integer) 10
127.0.0.1:6379 APPEND key1 ,redis is so intersting!
(integer) 34
127.0.0.1:6379 STRLEN key1 # 获取当前key的字符长度
(integer) 34
127.0.0.1:6379 set views 0
OK
127.0.0.1:6379 get views
0
127.0.0.1:6379 incr views # 加一
(integer) 1
127.0.0.1:6379 incr views
(integer) 2
127.0.0.1:6379 get views
2
127.0.0.1:6379 DECR views # 减一
(integer) 1
127.0.0.1:6379 get views
1
127.0.0.1:6379 type views # 获取该key的类型
string
127.0.0.1:6379 INCRBY views 5
(integer) 6
127.0.0.1:6379 get views
6
127.0.0.1:6379 INCRBY views 10 # 指定增加的步长
(integer) 16
127.0.0.1:6379 get views
16
127.0.0.1:6379 DECRBY views 10 # 指定减少的步长
(integer) 6
127.0.0.1:6379 get views
6# 操作key的值
127.0.0.1:6379 FLUSHDB # 清空当前库
OK
127.0.0.1:6379 set key1 hello liangtl # 设置key1的值
OK
127.0.0.1:6379 get key1 # 获取key1的值
hello liangtl
127.0.0.1:6379 GETRANGE key1 0 3 # 截取key1的指定字符0123左闭右开
hell
127.0.0.1:6379 GETRANGE key1 0 -1 # 截取key1的所有字符java的substring
hello liangtl
127.0.0.1:6379 set key2 abcdefg
OK
127.0.0.1:6379 get key2
abcdefg
127.0.0.1:6379 SETRANGE key2 1 cb # 替换指定位置开始的字符java的replace
(integer) 7
127.0.0.1:6379 get key2
acbdefg# SETEXset with expire 设置该键的过期时间
127.0.0.1:6379 SETEX key3 30 hello
OK
127.0.0.1:6379 ttl key3
(integer) 10
127.0.0.1:6379 get key3
hello
127.0.0.1:6379 keys *
1) key2
2) key1# SETNXset with not exist 不存在时设置该键的值否则设置失败
127.0.0.1:6379 setnx key4 redis
(integer) 1
127.0.0.1:6379 get key4
redis
127.0.0.1:6379 SETNX key4 mongoDB
(integer) 0
127.0.0.1:6379 get key4
redis
127.0.0.1:6379 # 批量添加keymset、mset
127.0.0.1:6379 MSET k1 v1 k2 v2 k3 v3 # 同时设置多个值
OK
127.0.0.1:6379 keys *
1) k1
2) k2
3) k3
127.0.0.1:6379 MGET k1 k2 k3 # 同时获取多个值
1) v1
2) v2
3) v3
127.0.0.1:6379 MSETNX k1 v2 k4 v4 # 原子性只会全部成功或者全部失败所以get时为空
(integer) 0
127.0.0.1:6379 get k4
(nil)# 对象
127.0.0.1:6379 set user:1 {name:zhangsan,age:3}
OK
127.0.0.1:6379 keys *
1) k1
2) user:1
3) k2
4) k3
127.0.0.1:6379 get user:1
{name:zhangsan,age:3}
# 这里的key是一个巧妙的设计user:{id}:{filed},这种设计在redis上看是完全OK的
127.0.0.1:6379 MSET user:1:name zhangsan user:1:age 2
OK
127.0.0.1:6379 KEYS *
1) user:1:age
2) k1
3) user:1:name
4) k2
5) user:1
6) k3
127.0.0.1:6379 get user:1:name
zhangsan# getset 先获取值在设置值
127.0.0.1:6379 getset db reids # 如果该键没有值则返回null并且设置为新的值
(nil)
127.0.0.1:6379 get db
reids
127.0.0.1:6379 getset db mongodb # 如果有值返回原来的值并且设置新的值
reids
127.0.0.1:6379 get db
mongodbList列表 List介绍Redis列表是简单字符串列表按照插入顺序排序。你可以添加一个元素到列表的头或则尾 它的底层是一个双向链表对两端操作的性能很高通过索引下标操作中间节点的性能很差 # 往列表的头部Left/尾部Right插入元素
127.0.0.1:6379 lpush list one # 往名为list的列表中加入一个valueone如果list不存在则为新建操作。lpush为从左边插入所以输出为倒叙Rpush同理。
(integer) 1
127.0.0.1:6379 lpush list two
(integer) 2
127.0.0.1:6379 lpush list three
(integer) 3
127.0.0.1:6379 lrange list 0 -1 # 输出list中的所有元素
1) three
2) two
3) one
127.0.0.1:6379 RPUSH list four # 从列表的尾部插入元素
(integer) 4
127.0.0.1:6379 lrange list 0 -1 # 输出
1) three
2) two
3) one
4) four# 往列表的头部Left/尾部Right移除元素
127.0.0.1:6379 LPOP list # 移除列表第一个元素
three
127.0.0.1:6379 RPOP list # 移除列表最后一个元素
four
127.0.0.1:6379 LRANGE list 0 -1 # 输出列表中的元素
1) two
2) one# 获取列表指定索引位置的值
127.0.0.1:6379 LINDEX list 0 # 获取索引位置为0的值
two
127.0.0.1:6379 LINDEX list 1 # 获取索引位置为1的值
one# 获取列表长度
127.0.0.1:6379 LLEN list
(integer) 2
127.0.0.1:6379 LPUSH list five
(integer) 3
127.0.0.1:6379 LLEN list
(integer) 3
127.0.0.1:6379 # 移除列表中的指定元素
127.0.0.1:6379 LRANGE list 0 -1
1) seven
2) six
3) two
4) five
5) two
6) one
127.0.0.1:6379 LREM list 1 five # 移除一个five元素
(integer) 1
127.0.0.1:6379 LRANGE list 0 -1
1) seven
2) six
3) two
4) two
5) one
127.0.0.1:6379 LREM list 2 two # 移除两个two元素
(integer) 2
127.0.0.1:6379 LRANGE list 0 -1
1) seven
2) six
3) one# 截取列表中的指定下标长度的元素
127.0.0.1:6379 LRANGE list 0 -1
1) four
2) three
3) two
4) seven
5) six
6) one
127.0.0.1:6379 LTRIM list 1 3 # 截取list中索引从[1,3)
OK
127.0.0.1:6379 LRANGE list 0 -1
1) three
2) two
3) seven# 移除就列表中的一个元素并且将这个被移除的元素加入新的列表
127.0.0.1:6379 keys *
1) list
2) list1
127.0.0.1:6379 RPOPLPUSH list list2 #将list中的最后一个元素移除并且将这个被移除的元素加入list2如果list2不存在则新增list2
seven
127.0.0.1:6379 LRANGE list 0 -1
1) three
2) two
127.0.0.1:6379 LRANGE list2 0 -1
1) seven# 更新列表中指定位置的value
127.0.0.1:6379 EXISTS list # 判断list是否存在存在返回1不存在返回0
(integer) 1
127.0.0.1:6379 LSET list 0 three2 # 将list中的第一个元素设置为three2
OK
127.0.0.1:6379 LRANGE list 0 -1
1) three2
2) two
127.0.0.1:6379 LSET list 3 haha # 如果下标不存在则会报错
(error) ERR index out of range# 插入一个值到列表的某个value的前面或者后面
127.0.0.1:6379 LRANGE list 0 -1
1) three2
2) two
127.0.0.1:6379 LINSERT list before two one # 往list中第一个值为two的元素前面插入一个值为one的元素
(integer) 3
127.0.0.1:6379 LRANGE list 0 -1
1) three2
2) one
3) two
Set集合 Set介绍set对外提供的功能与list类似是一个列表的功能。特殊在于set可以自动排重。当需要保存一个list数据时又不希望list里的元素重复时则set是一个很好的选择并且set提供了判断某个成员是否在set中的一个接口这是list不能提供的。 Redis的set是String类型的无序集合它的底层其实是一个value为null的hash表所以添加删除查找的复杂度都为O(1) 127.0.0.1:6379 FLUSHDB # 清空当前数据库
OK
127.0.0.1:6379 keys *
(empty array)
127.0.0.1:6379 SADD set1 one two three four # 新增一个set1放入后面这四个值
(integer) 4
127.0.0.1:6379 SMEMBERS set1 # 获取set1中的所有元素
1) four
2) three
3) one
4) two
127.0.0.1:6379 SISMEMBER set1 one # 判断set1中是否存在one这个元素
(integer) 1
127.0.0.1:6379 SISMEMBER set1 five
(integer) 0
127.0.0.1:6379 SADD set1 one # 往set1中插入一个重复的值不会报错但是也不会插入set是一个不重复的无序集合
(integer) 0
127.0.0.1:6379 SMEMBERS set1
1) four
2) three
3) one
4) two
127.0.0.1:6379 SREM set1 four # 删除set1中的four元素
(integer) 1
127.0.0.1:6379 SMEMBERS set1 five # 判断five元素是否是set1的成员
(integer) 1# 随机抽取或者删除set中的一个或多个元素
127.0.0.1:6379 SADD set2 1 2 3 4 5 6 7 8 9
(integer) 9
127.0.0.1:6379 SMEMBERS set2
1) 1
2) 2
3) 3
4) 4
5) 5
6) 6
7) 7
8) 8
9) 9
127.0.0.1:6379 SRANDMEMBER set2 # 随机抽取set2中的一个元素
3
127.0.0.1:6379 SRANDMEMBER set2 2 # 随机抽取set2中的两个元素
1) 4
2) 6
127.0.0.1:6379 SPOP set2 # 随机删除set2中的一个元素
3
127.0.0.1:6379 SPOP set2 2 # 随机删除set2中的两个元素
1) 2
2) 6
127.0.0.1:6379 SMEMBERS set2
1) 1
2) 4
3) 5
4) 7
5) 8
6) 9# 将一个set中的值移动至另一个set中
127.0.0.1:6379 SMEMBERS set1
1) one
2) two
3) three
127.0.0.1:6379 SMEMBERS set2
1) 1
2) 4
3) 5
4) 7
5) 8
6) 9
127.0.0.1:6379 SMOVE set1 set2 three
(integer) 1
127.0.0.1:6379 SMEMBERS set1
1) two
2) one
127.0.0.1:6379 SMEMBERS set2
1) 8
2) 7
3) 5
4) 4
5) three
6) 9
7) 1# 取两个或两个以上set集合的交集、并集、差集此处以两个为例
127.0.0.1:6379 SADD set3 a b c # 新增set3
(integer) 3
127.0.0.1:6379 SADD set4 c d e # 新增set4
(integer) 3
127.0.0.1:6379 SDIFF set3 set4 # 以set3为主取set3和set4的差集
1) a
2) b
127.0.0.1:6379 SINTER set3 set4 # 取set3、set4的交集
1) c
127.0.0.1:6379 SUNION set3 set4 # 取set3、set4的并集
1) c
2) b
3) d
4) e
5) a闲聊时间 多聊一嘴其实这些命令都可以在英语单词中找到一些规律 把SDIFF、SINTER还有SUNION这三个单词首字母去掉可以得到 DIFFdifferent它代表不同的用一句Redis官网的翻译来描述返回的集合元素是第一个key的集合与后面所有key的集合的差集 INTERintersection翻译过来为交叉同样的意指数学关系中的交集 UNIONunion翻译为联合与数学关系中的并集也是可以沾边的
Hash哈希 Hash介绍hash是一个键值对集合 Redis hash是一个string类型的field和value的映射表hash最适合用来存储对象。类似java里面的MapString,Object 127.0.0.1:6379 HSET hash1 age 23 name tl high 178 # 新建hash1并且以键值对的形式存储后面的这些值
(integer) 3
127.0.0.1:6379 HLEN hash1 # 获取hash1的长度
(integer) 3
127.0.0.1:6379 HEXISTS hash1 name # 判断hash1是否存在键name
(integer) 1
127.0.0.1:6379 HEXISTS hash1 weight
(integer) 0
127.0.0.1:6379 HGETALL hash1 # 获取hash1中的所有键和值
1) age
2) 23
3) name
4) tl
5) high
6) 178
127.0.0.1:6379 HKEYS hash1 # 获取hash1中的所有键
1) age
2) name
3) high
127.0.0.1:6379 HVALS hash1 # 获取hash1中的所有值
1) 23
2) tl
3) 178
127.0.0.1:6379 HINCRBY hash1 age 2 # 将hash1中的age对应的value2
(integer) 25
127.0.0.1:6379 HGET hash1 age # 获取hash1中age对应的值
25
127.0.0.1:6379 HINCRBY hash1 age -2 # 将hash1中的age对应的value-2
(integer) 23
127.0.0.1:6379 HGET hash1 age # 获取hash1中age对应的值
23
127.0.0.1:6379 HSETNX hash1 name haha # 如果键name不存在则新增存在则返回0不对原值做变动
(integer) 0
127.0.0.1:6379 HSETNX hash1 add jx
(integer) 1
127.0.0.1:6379 HGETALL hash1
1) age
2) 23
3) name
4) tl
5) high
6) 178
7) add
8) jxZset有序集合 Zset介绍Zset是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分( score) ,这个评分( score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的但是评分可以是重复了。 因为元素是有序的,所以你也可以很快的根据评分( score )或者次序( position )来获取一个范围的元素。 访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。 127.0.0.1:6379 ZADD zset 1 one 3 three 7 four 2 two 5 five # 新增zset1并添加后面跟随的键值
(integer) 5
127.0.0.1:6379 ZREVRANGEBYSCORE zset -inf inf
(empty array)
127.0.0.1:6379 ZRANGE zset 0 -1
1) one
2) two
3) three
4) five
5) four
127.0.0.1:6379 ZADD zset1 1 one 2 two 3 three 4 four # 新增zset1并添加后面跟随的键值
(integer) 4
127.0.0.1:6379 ZRANGE zset1 0 -1
1) one
2) two
3) three
4) four
127.0.0.1:6379 ZADD zset1 5 five # 给zset新增值
(integer) 1
127.0.0.1:6379 ZRANGE zset1 0 -1
1) one
2) two
3) three
4) four
5) five
# -inf负无穷 inf正无穷 score每个元素value被赋予的一个权重值
127.0.0.1:6379 ZRANGEBYSCORE zset1 -inf inf # 根据score从小到大排序输出
1) one
2) two
3) three
4) four
5) five
127.0.0.1:6379 ZRANGEBYSCORE zset1 0 2 # 从小到大输出权重在[02]之间的值
1) one
2) two
127.0.0.1:6379 ZREVRANGE zset1 1 3
1) four
2) three
3) two
127.0.0.1:6379 ZRANGEBYSCORE zset1 -inf inf withscores1) one2) 13) two4) 25) three6) 37) four8) 49) five
10) 5
127.0.0.1:6379 ZCOUNT zset 2 5 # 统计zset中权重值为2-5之间的个数
(integer) 3
127.0.0.1:6379 ZRANK zset five # 输出zset中five元素对应的排名从0开始
(integer) 3